From 6be23effc75cdb06e3bae2d83fde43f922ee8488 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Mon, 26 Aug 2024 09:19:14 -0500 Subject: [PATCH 01/26] Create navigation-based photo header --- src/photo/PhotoDetailPage.tsx | 46 ++++++++++------------ src/photo/PhotoLarge.tsx | 17 ++++++-- src/photo/{PhotoLinks.tsx => PhotoNav.tsx} | 44 ++++++++++++++++++--- 3 files changed, 72 insertions(+), 35 deletions(-) rename src/photo/{PhotoLinks.tsx => PhotoNav.tsx} (71%) diff --git a/src/photo/PhotoDetailPage.tsx b/src/photo/PhotoDetailPage.tsx index ed70dec8..fb16f223 100644 --- a/src/photo/PhotoDetailPage.tsx +++ b/src/photo/PhotoDetailPage.tsx @@ -3,8 +3,7 @@ import { Photo, PhotoDateRange } from '.'; import PhotoLarge from './PhotoLarge'; import SiteGrid from '@/components/SiteGrid'; import PhotoGrid from './PhotoGrid'; -import { clsx } from 'clsx/lite'; -import PhotoLinks from './PhotoLinks'; +import PhotoNav from './PhotoNav'; import TagHeader from '@/tag/TagHeader'; import { Camera } from '@/camera'; import CameraHeader from '@/camera/CameraHeader'; @@ -102,6 +101,24 @@ export default function PhotoDetailPage({ dateRange={dateRange} />} />} + } + />, + ]} + /> } - contentSide={ - - , - ]} - />} /> ); diff --git a/src/photo/PhotoLarge.tsx b/src/photo/PhotoLarge.tsx index cda6ac5b..cba780a9 100644 --- a/src/photo/PhotoLarge.tsx +++ b/src/photo/PhotoLarge.tsx @@ -38,11 +38,13 @@ import { useAppState } from '@/state/AppState'; export default function PhotoLarge({ photo, + className, primaryTag, priority, prefetch = SHOULD_PREFETCH_ALL_LINKS, prefetchRelatedLinks = SHOULD_PREFETCH_ALL_LINKS, revalidatePhoto, + showTitle = true, showCamera = true, showSimulation = true, shouldShare = true, @@ -55,11 +57,13 @@ export default function PhotoLarge({ onVisible, }: { photo: Photo + className?: string primaryTag?: string priority?: boolean prefetch?: boolean prefetchRelatedLinks?: boolean revalidatePhoto?: RevalidatePhoto + showTitle?: boolean showCamera?: boolean showSimulation?: boolean shouldShare?: boolean @@ -85,10 +89,14 @@ export default function PhotoLarge({ const { arePhotosMatted, isUserSignedIn } = useAppState(); + const hasTitle = showTitle && ( + Boolean(photo.title) || + SHOW_PHOTO_TITLE_FALLBACK_TEXT + ); + const hasTitleContent = - photo.title || - SHOW_PHOTO_TITLE_FALLBACK_TEXT || - photo.caption; + hasTitle || + Boolean(photo.caption); const hasMetaContent = showCameraContent || @@ -102,6 +110,7 @@ export default function PhotoLarge({ return (
- {(photo.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) && + {hasTitle && +
- PREV + + + PREV + +
+ {(photo.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) && + } +
- NEXT + + NEXT + + - +
); }; From e0a83415b0172f65c5605794ea1f7ecb6d99413d Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Mon, 26 Aug 2024 10:03:21 -0500 Subject: [PATCH 02/26] Fix photo nav dark mode support --- src/photo/PhotoDetailPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/photo/PhotoDetailPage.tsx b/src/photo/PhotoDetailPage.tsx index fb16f223..630f20ce 100644 --- a/src/photo/PhotoDetailPage.tsx +++ b/src/photo/PhotoDetailPage.tsx @@ -110,7 +110,7 @@ export default function PhotoDetailPage({ contentMain={ Date: Sat, 31 Aug 2024 19:43:52 -0500 Subject: [PATCH 03/26] Combine photo nav + sets --- src/camera/CameraHeader.tsx | 5 +- src/focal/FocalLengthHeader.tsx | 5 +- src/photo/InfinitePhotoScroll.tsx | 9 +- src/photo/PhotoDetailPage.tsx | 142 +++++++----------- src/photo/PhotoGrid.tsx | 10 +- src/photo/PhotoGridContainer.tsx | 2 +- src/photo/PhotoHeader.tsx | 123 +++++++++++++++ src/photo/PhotoLink.tsx | 10 +- src/photo/PhotoMedium.tsx | 15 +- src/photo/{PhotoNav.tsx => PhotoPrevNext.tsx} | 110 ++++++-------- src/photo/PhotoSetHeader.tsx | 85 ----------- src/photo/PhotoShareModal.tsx | 10 +- src/photo/PhotoSmall.tsx | 15 +- src/photo/db/index.ts | 11 +- src/photo/index.ts | 10 ++ src/simulation/FilmSimulationHeader.tsx | 5 +- src/site/globals.css | 4 + src/site/paths.ts | 16 +- src/tag/HiddenHeader.tsx | 4 +- src/tag/TagHeader.tsx | 5 +- 20 files changed, 281 insertions(+), 315 deletions(-) create mode 100644 src/photo/PhotoHeader.tsx rename src/photo/{PhotoNav.tsx => PhotoPrevNext.tsx} (53%) delete mode 100644 src/photo/PhotoSetHeader.tsx diff --git a/src/camera/CameraHeader.tsx b/src/camera/CameraHeader.tsx index 82675100..69326614 100644 --- a/src/camera/CameraHeader.tsx +++ b/src/camera/CameraHeader.tsx @@ -1,6 +1,6 @@ import { Photo, PhotoDateRange } from '@/photo'; import { pathForCameraShare } from '@/site/paths'; -import PhotoSetHeader from '@/photo/PhotoSetHeader'; +import PhotoHeader from '@/photo/PhotoHeader'; import { Camera, cameraFromPhoto } from '.'; import PhotoCamera from './PhotoCamera'; import { descriptionForCameraPhotos } from './meta'; @@ -22,7 +22,8 @@ export default function CameraHeader({ }) { const camera = cameraFromPhoto(photos[0], cameraProp); return ( - } entityVerb="Photo" entityDescription={ diff --git a/src/focal/FocalLengthHeader.tsx b/src/focal/FocalLengthHeader.tsx index b40f459a..e30d68f3 100644 --- a/src/focal/FocalLengthHeader.tsx +++ b/src/focal/FocalLengthHeader.tsx @@ -1,7 +1,7 @@ import { Photo, PhotoDateRange } from '@/photo'; import { descriptionForFocalLengthPhotos } from '.'; import { pathForFocalLengthShare } from '@/site/paths'; -import PhotoSetHeader from '@/photo/PhotoSetHeader'; +import PhotoHeader from '@/photo/PhotoHeader'; import PhotoFocalLength from './PhotoFocalLength'; export default function FocalLengthHeader({ @@ -20,7 +20,8 @@ export default function FocalLengthHeader({ dateRange?: PhotoDateRange }) { return ( - } entityDescription={descriptionForFocalLengthPhotos( photos, diff --git a/src/photo/InfinitePhotoScroll.tsx b/src/photo/InfinitePhotoScroll.tsx index dfb85f37..b0739287 100644 --- a/src/photo/InfinitePhotoScroll.tsx +++ b/src/photo/InfinitePhotoScroll.tsx @@ -10,11 +10,9 @@ import { import SiteGrid from '@/components/SiteGrid'; import Spinner from '@/components/Spinner'; import { getPhotosCachedAction, getPhotosAction } from '@/photo/actions'; -import { Photo } from '.'; +import { Photo, PhotoSetAttributes } from '.'; import { clsx } from 'clsx/lite'; import { useAppState } from '@/state/AppState'; -import { Camera } from '@/camera'; -import { FilmSimulation } from '@/simulation'; import { GetPhotosOptions } from './db'; export type RevalidatePhoto = ( @@ -38,9 +36,6 @@ export default function InfinitePhotoScroll({ initialOffset: number itemsPerPage: number sortBy?: GetPhotosOptions['sortBy'] - tag?: string - camera?: Camera - simulation?: FilmSimulation cacheKey: string wrapMoreButtonInGrid?: boolean useCachedPhotos?: boolean @@ -50,7 +45,7 @@ export default function InfinitePhotoScroll({ onLastPhotoVisible: () => void revalidatePhoto?: RevalidatePhoto }) => ReactNode -}) { +} & PhotoSetAttributes) { const { swrTimestamp, isUserSignedIn } = useAppState(); const key = `${swrTimestamp}-${cacheKey}`; diff --git a/src/photo/PhotoDetailPage.tsx b/src/photo/PhotoDetailPage.tsx index 630f20ce..e86e5f5e 100644 --- a/src/photo/PhotoDetailPage.tsx +++ b/src/photo/PhotoDetailPage.tsx @@ -1,17 +1,15 @@ import AnimateItems from '@/components/AnimateItems'; -import { Photo, PhotoDateRange } from '.'; +import { Photo, PhotoDateRange, PhotoSetAttributes } from '.'; import PhotoLarge from './PhotoLarge'; import SiteGrid from '@/components/SiteGrid'; import PhotoGrid from './PhotoGrid'; -import PhotoNav from './PhotoNav'; import TagHeader from '@/tag/TagHeader'; -import { Camera } from '@/camera'; import CameraHeader from '@/camera/CameraHeader'; -import { FilmSimulation } from '@/simulation'; import FilmSimulationHeader from '@/simulation/FilmSimulationHeader'; import { TAG_HIDDEN } from '@/tag'; import HiddenHeader from '@/tag/HiddenHeader'; import FocalLengthHeader from '@/focal/FocalLengthHeader'; +import PhotoHeader from './PhotoHeader'; export default function PhotoDetailPage({ photo, @@ -30,94 +28,68 @@ export default function PhotoDetailPage({ photo: Photo photos: Photo[] photosGrid?: Photo[] - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number indexNumber?: number count?: number dateRange?: PhotoDateRange shouldShare?: boolean includeFavoriteInAdminMenu?: boolean -}) { +} & PhotoSetAttributes) { + let customHeader: JSX.Element | undefined; + + if (tag) { + customHeader = tag === TAG_HIDDEN + ? + : ; + } else if (camera) { + customHeader = ; + } else if (simulation) { + customHeader = ; + } else if (focal) { + customHeader = ; + } + return (
- {tag && - - : } + } - {camera && - } - />} - {simulation && - } - />} - {focal && - } - />} - } - />, - ]} /> void onAnimationComplete?: () => void -}) { +} & PhotoSetAttributes) { const { isUserSignedIn, selectedPhotoIds, diff --git a/src/photo/PhotoGridContainer.tsx b/src/photo/PhotoGridContainer.tsx index dd29fafd..0346c4b5 100644 --- a/src/photo/PhotoGridContainer.tsx +++ b/src/photo/PhotoGridContainer.tsx @@ -38,7 +38,7 @@ export default function PhotoGridContainer({ return ( {header && photo.id === selectedPhoto.id) + : undefined; + + const renderPrevNext = () => + ; + + const renderDateRange = () => + + {start === end + ? start + : <>{end}
– {start}} +
; + + return ( + + + {entity ?? ( + (selectedPhoto?.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) + ? + : <>X of X + )} + + + {entity && <> + {selectedPhotoIndex !== undefined + // eslint-disable-next-line max-len + ? `${entityVerb ? `${entityVerb} ` : ''}${indexNumber || (selectedPhotoIndex + 1)} of ${count ?? photos.length}` + : entityDescription} + {selectedPhotoIndex === undefined && sharePath && + } + } + +
+ {selectedPhoto + ? renderPrevNext() + : renderDateRange()} +
+ , + ]} + /> + ); +} diff --git a/src/photo/PhotoLink.tsx b/src/photo/PhotoLink.tsx index 34bcca38..088ffc1d 100644 --- a/src/photo/PhotoLink.tsx +++ b/src/photo/PhotoLink.tsx @@ -1,13 +1,11 @@ 'use client'; import { ReactNode } from 'react'; -import { Photo, titleForPhoto } from '@/photo'; +import { Photo, PhotoSetAttributes, titleForPhoto } from '@/photo'; import Link from 'next/link'; import { AnimationConfig } from '../components/AnimateItems'; import { useAppState } from '@/state/AppState'; import { pathForPhoto } from '@/site/paths'; -import { Camera } from '@/camera'; -import { FilmSimulation } from '@/simulation'; import { clsx } from 'clsx/lite'; export default function PhotoLink({ @@ -23,16 +21,12 @@ export default function PhotoLink({ children, }: { photo?: Photo - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number scroll?: boolean prefetch?: boolean nextPhotoAnimation?: AnimationConfig className?: string children?: ReactNode -}) { +} & PhotoSetAttributes) { const { setNextPhotoAnimation } = useAppState(); return ( diff --git a/src/photo/PhotoMedium.tsx b/src/photo/PhotoMedium.tsx index 72fdd0a4..df1bab48 100644 --- a/src/photo/PhotoMedium.tsx +++ b/src/photo/PhotoMedium.tsx @@ -1,12 +1,15 @@ 'use client'; -import { Photo, altTextForPhoto, doesPhotoNeedBlurCompatibility } from '.'; +import { + Photo, + PhotoSetAttributes, + altTextForPhoto, + doesPhotoNeedBlurCompatibility, +} from '.'; import ImageMedium from '@/components/image/ImageMedium'; import Link from 'next/link'; import { clsx } from 'clsx/lite'; import { pathForPhoto } from '@/site/paths'; -import { Camera } from '@/camera'; -import { FilmSimulation } from '@/simulation'; import { SHOULD_PREFETCH_ALL_LINKS } from '@/site/config'; import { useRef } from 'react'; import useOnVisible from '@/utility/useOnVisible'; @@ -24,16 +27,12 @@ export default function PhotoMedium({ onVisible, }: { photo: Photo - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number selected?: boolean priority?: boolean prefetch?: boolean className?: string onVisible?: () => void -}) { +} & PhotoSetAttributes) { const ref = useRef(null); useOnVisible(ref, onVisible); diff --git a/src/photo/PhotoNav.tsx b/src/photo/PhotoPrevNext.tsx similarity index 53% rename from src/photo/PhotoNav.tsx rename to src/photo/PhotoPrevNext.tsx index 25020df1..a8ef3b2d 100644 --- a/src/photo/PhotoNav.tsx +++ b/src/photo/PhotoPrevNext.tsx @@ -1,16 +1,17 @@ 'use client'; import { useEffect } from 'react'; -import { Photo, getNextPhoto, getPreviousPhoto } from '@/photo'; +import { + Photo, + PhotoSetAttributes, + getNextPhoto, + getPreviousPhoto, +} from '@/photo'; import PhotoLink from './PhotoLink'; import { useRouter } from 'next/navigation'; import { pathForPhoto } from '@/site/paths'; import { useAppState } from '@/state/AppState'; import { AnimationConfig } from '@/components/AnimateItems'; -import { Camera } from '@/camera'; -import { FilmSimulation } from '@/simulation'; -import { SHOW_PHOTO_TITLE_FALLBACK_TEXT } from '@/site/config'; -import { BiChevronLeft, BiChevronRight } from 'react-icons/bi'; import { clsx } from 'clsx/lite'; const LISTENER_KEYUP = 'keyup'; @@ -18,25 +19,19 @@ const LISTENER_KEYUP = 'keyup'; const ANIMATION_LEFT: AnimationConfig = { type: 'left', duration: 0.3 }; const ANIMATION_RIGHT: AnimationConfig = { type: 'right', duration: 0.3 }; -export default function PhotoNav({ +export default function PhotoPrevNext({ photo, - photos, + photos = [], className, tag, camera, simulation, focal, - prefetch, }: { - photo: Photo - photos: Photo[] + photo?: Photo + photos?: Photo[] className?: string - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number - prefetch?: boolean -}) { +} & PhotoSetAttributes) { const router = useRouter(); const { @@ -44,8 +39,8 @@ export default function PhotoNav({ shouldRespondToKeyboardCommands, } = useAppState(); - const previousPhoto = getPreviousPhoto(photo, photos); - const nextPhoto = getNextPhoto(photo, photos); + const previousPhoto = photo ? getPreviousPhoto(photo, photos) : undefined; + const nextPhoto = photo ? getNextPhoto(photo, photos) : undefined; useEffect(() => { if (shouldRespondToKeyboardCommands) { @@ -105,54 +100,39 @@ export default function PhotoNav({ 'flex items-center', className, )}> - - - - PREV - - -
- {(photo.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) && - } +
+ + + PREV + + + / + + + NEXT + +
- - - NEXT - - -
); }; diff --git a/src/photo/PhotoSetHeader.tsx b/src/photo/PhotoSetHeader.tsx deleted file mode 100644 index 87b4da2f..00000000 --- a/src/photo/PhotoSetHeader.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { clsx } from 'clsx/lite'; -import { Photo, PhotoDateRange, dateRangeForPhotos } from '.'; -import ShareButton from '@/components/ShareButton'; -import AnimateItems from '@/components/AnimateItems'; -import { ReactNode } from 'react'; -import { HIGH_DENSITY_GRID } from '@/site/config'; -import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; - -export default function PhotoSetHeader({ - entity, - entityVerb, - entityDescription, - photos, - selectedPhoto, - sharePath, - indexNumber, - count, - dateRange, -}: { - entity: ReactNode - entityVerb?: string - entityDescription: string - photos: Photo[] - selectedPhoto?: Photo - sharePath?: string - indexNumber?: number - count?: number - dateRange?: PhotoDateRange -}) { - const { start, end } = dateRangeForPhotos(photos, dateRange); - - const selectedPhotoIndex = selectedPhoto - ? photos.findIndex(photo => photo.id === selectedPhoto.id) - : undefined; - - return ( - - - {entity} - - - {selectedPhotoIndex !== undefined - // eslint-disable-next-line max-len - ? `${entityVerb ? `${entityVerb} ` : ''}${indexNumber || (selectedPhotoIndex + 1)} of ${count ?? photos.length}` - : entityDescription} - {selectedPhotoIndex === undefined && sharePath && - } - - - {start === end - ? start - : <>{end}
– {start}} -
- ]} - /> - ); -} diff --git a/src/photo/PhotoShareModal.tsx b/src/photo/PhotoShareModal.tsx index b9a6f14c..8f577454 100644 --- a/src/photo/PhotoShareModal.tsx +++ b/src/photo/PhotoShareModal.tsx @@ -1,17 +1,11 @@ import PhotoOGTile from '@/photo/PhotoOGTile'; import { absolutePathForPhoto, pathForPhoto } from '@/site/paths'; -import { Photo } from '.'; +import { Photo, PhotoSetAttributes } from '.'; import ShareModal from '@/components/ShareModal'; -import { Camera } from '@/camera'; -import { FilmSimulation } from '@/simulation'; export default function PhotoShareModal(props: { photo: Photo - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number -}) { +} & PhotoSetAttributes) { return ( void -}) { +} & PhotoSetAttributes) { const ref = useRef(null); useOnVisible(ref, onVisible); diff --git a/src/photo/db/index.ts b/src/photo/db/index.ts index 2bc13658..cf2b1ec7 100644 --- a/src/photo/db/index.ts +++ b/src/photo/db/index.ts @@ -1,8 +1,6 @@ -import { Camera } from '@/camera'; -import { Lens } from '@/lens'; -import { FilmSimulation } from '@/simulation'; import { PRIORITY_ORDER_ENABLED } from '@/site/config'; import { parameterize } from '@/utility/string'; +import { PhotoSetAttributes } from '..'; export const GENERATE_STATIC_PARAMS_LIMIT = 1000; export const PHOTO_DEFAULT_LIMIT = 100; @@ -12,16 +10,11 @@ export type GetPhotosOptions = { limit?: number offset?: number query?: string - tag?: string - camera?: Camera - lens?: Lens - simulation?: FilmSimulation - focal?: number takenBefore?: Date takenAfterInclusive?: Date updatedBefore?: Date hidden?: 'exclude' | 'include' | 'only' -}; +} & PhotoSetAttributes; export const areOptionsSensitive = (options: GetPhotosOptions) => options.hidden === 'include' || options.hidden === 'only'; diff --git a/src/photo/index.ts b/src/photo/index.ts index 646bd13e..bf3feab3 100644 --- a/src/photo/index.ts +++ b/src/photo/index.ts @@ -1,4 +1,6 @@ +import { Camera } from '@/camera'; import { formatFocalLength } from '@/focal'; +import { Lens } from '@/lens'; import { getNextImageUrlForRequest } from '@/services/next-image'; import { FilmSimulation } from '@/simulation'; import { HIGH_DENSITY_GRID, SHOW_EXIF_DATA } from '@/site/config'; @@ -99,6 +101,14 @@ export interface Photo extends PhotoDb { takenAtNaiveFormatted: string } +export interface PhotoSetAttributes { + tag?: string + camera?: Camera + simulation?: FilmSimulation + focal?: number + lens?: Lens // Unimplemented as a set +} + export const parsePhotoFromDb = (photoDbRaw: PhotoDb): Photo => { const photoDb = camelcaseKeys( photoDbRaw as unknown as Record diff --git a/src/simulation/FilmSimulationHeader.tsx b/src/simulation/FilmSimulationHeader.tsx index b0908572..a8c95402 100644 --- a/src/simulation/FilmSimulationHeader.tsx +++ b/src/simulation/FilmSimulationHeader.tsx @@ -1,7 +1,7 @@ import { Photo, PhotoDateRange } from '@/photo'; import { FilmSimulation, descriptionForFilmSimulationPhotos } from '.'; import { pathForFilmSimulationShare } from '@/site/paths'; -import PhotoSetHeader from '@/photo/PhotoSetHeader'; +import PhotoHeader from '@/photo/PhotoHeader'; import PhotoFilmSimulation from '@/simulation/PhotoFilmSimulation'; @@ -21,7 +21,8 @@ export default function FilmSimulationHeader({ dateRange?: PhotoDateRange }) { return ( - } entityVerb="Photo" entityDescription={descriptionForFilmSimulationPhotos( diff --git a/src/site/globals.css b/src/site/globals.css index c7eccf13..13d47311 100644 --- a/src/site/globals.css +++ b/src/site/globals.css @@ -142,6 +142,10 @@ @apply text-gray-400/80 dark:text-gray-400/50 } + .text-extra-extra-dim { + @apply + text-gray-200 dark:text-gray-800 + } .text-icon { @apply text-gray-800 dark:text-gray-200 diff --git a/src/site/paths.ts b/src/site/paths.ts index 8d15811d..e812bfa8 100644 --- a/src/site/paths.ts +++ b/src/site/paths.ts @@ -1,4 +1,4 @@ -import { Photo } from '@/photo'; +import { Photo, PhotoSetAttributes } from '@/photo'; import { BASE_URL, GRID_HOMEPAGE_ENABLED } from './config'; import { Camera } from '@/camera'; import { FilmSimulation } from '@/simulation'; @@ -75,13 +75,7 @@ export const PATHS_TO_CACHE = [ ...PATHS_ADMIN, ]; -interface PhotoPathParams { - photo: PhotoOrPhotoId - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number -} +type PhotoPathParams = { photo: PhotoOrPhotoId } & PhotoSetAttributes; // Absolute paths export const ABSOLUTE_PATH_FOR_HOME_IMAGE = `${BASE_URL}/home-image`; @@ -280,11 +274,7 @@ export const isPathProtected = (pathname?: string) => export const getPathComponents = (pathname = ''): { photoId?: string - tag?: string - camera?: Camera - simulation?: FilmSimulation - focal?: number -} => { +} & PhotoSetAttributes => { const photoIdFromPhoto = pathname.match( new RegExp(`^${PREFIX_PHOTO}/([^/]+)`))?.[1]; const photoIdFromTag = pathname.match( diff --git a/src/tag/HiddenHeader.tsx b/src/tag/HiddenHeader.tsx index feac25fb..244013be 100644 --- a/src/tag/HiddenHeader.tsx +++ b/src/tag/HiddenHeader.tsx @@ -1,5 +1,5 @@ import { Photo, photoQuantityText } from '@/photo'; -import PhotoSetHeader from '@/photo/PhotoSetHeader'; +import PhotoHeader from '@/photo/PhotoHeader'; import HiddenTag from './HiddenTag'; export default function HiddenHeader({ @@ -14,7 +14,7 @@ export default function HiddenHeader({ count: number }) { return ( - } entityDescription={photoQuantityText(count, false)} diff --git a/src/tag/TagHeader.tsx b/src/tag/TagHeader.tsx index 4a9e3165..6eff23bc 100644 --- a/src/tag/TagHeader.tsx +++ b/src/tag/TagHeader.tsx @@ -2,7 +2,7 @@ import { Photo, PhotoDateRange } from '@/photo'; import PhotoTag from './PhotoTag'; import { descriptionForTaggedPhotos, isTagFavs } from '.'; import { pathForTagShare } from '@/site/paths'; -import PhotoSetHeader from '@/photo/PhotoSetHeader'; +import PhotoHeader from '@/photo/PhotoHeader'; import FavsTag from './FavsTag'; export default function TagHeader({ @@ -21,7 +21,8 @@ export default function TagHeader({ dateRange?: PhotoDateRange }) { return ( - : } From 41ac60c1b991089c4961288a4d8dcbd4abb9def2 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 31 Aug 2024 22:23:35 -0500 Subject: [PATCH 04/26] Fix share button spacing --- src/photo/PhotoHeader.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index d9f8f54f..16544418 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -91,8 +91,8 @@ export default function PhotoHeader({ )} Date: Sat, 31 Aug 2024 23:30:21 -0500 Subject: [PATCH 05/26] Show prev/next chevrons on mobile --- src/camera/CameraHeader.tsx | 1 - src/photo/PhotoPrevNext.tsx | 11 +++++------ src/simulation/FilmSimulationHeader.tsx | 1 - 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/camera/CameraHeader.tsx b/src/camera/CameraHeader.tsx index 69326614..150d3a64 100644 --- a/src/camera/CameraHeader.tsx +++ b/src/camera/CameraHeader.tsx @@ -25,7 +25,6 @@ export default function CameraHeader({ } - entityVerb="Photo" entityDescription={ descriptionForCameraPhotos(photos, undefined, count, dateRange)} photos={photos} diff --git a/src/photo/PhotoPrevNext.tsx b/src/photo/PhotoPrevNext.tsx index a8ef3b2d..bf714327 100644 --- a/src/photo/PhotoPrevNext.tsx +++ b/src/photo/PhotoPrevNext.tsx @@ -13,6 +13,7 @@ import { pathForPhoto } from '@/site/paths'; import { useAppState } from '@/state/AppState'; import { AnimationConfig } from '@/components/AnimateItems'; import { clsx } from 'clsx/lite'; +import { FiChevronLeft, FiChevronRight } from 'react-icons/fi'; const LISTENER_KEYUP = 'keyup'; @@ -112,9 +113,8 @@ export default function PhotoPrevNext({ scroll={false} prefetch > - - PREV - + + PREV / - - NEXT - + + NEXT
diff --git a/src/simulation/FilmSimulationHeader.tsx b/src/simulation/FilmSimulationHeader.tsx index a8c95402..df07a4f3 100644 --- a/src/simulation/FilmSimulationHeader.tsx +++ b/src/simulation/FilmSimulationHeader.tsx @@ -24,7 +24,6 @@ export default function FilmSimulationHeader({ } - entityVerb="Photo" entityDescription={descriptionForFilmSimulationPhotos( photos, undefined, count, dateRange)} photos={photos} From deca3acacbf5de0859dcca23c65474dede131edb Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 1 Sep 2024 00:01:17 -0500 Subject: [PATCH 06/26] Refine spacing --- src/photo/PhotoDetailPage.tsx | 2 +- src/photo/PhotoGridContainer.tsx | 2 +- src/photo/PhotoLarge.tsx | 8 ++++++-- src/photo/PhotoPrevNext.tsx | 18 ++++++++++++------ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/photo/PhotoDetailPage.tsx b/src/photo/PhotoDetailPage.tsx index e86e5f5e..ecfd14d7 100644 --- a/src/photo/PhotoDetailPage.tsx +++ b/src/photo/PhotoDetailPage.tsx @@ -85,7 +85,7 @@ export default function PhotoDetailPage({ return (
{header &&
{photo.caption && -
+
{photo.caption}
} {(showCameraContent || showTagsContent) && @@ -233,7 +237,7 @@ export default function PhotoLarge({ photo={photo} className={clsx( 'text-medium', - // Prevent date collision with admin button + // Prevent collision with admin button !hasNonDateContent && isUserSignedIn && 'md:pr-7', )} /> diff --git a/src/photo/PhotoPrevNext.tsx b/src/photo/PhotoPrevNext.tsx index bf714327..37c276b0 100644 --- a/src/photo/PhotoPrevNext.tsx +++ b/src/photo/PhotoPrevNext.tsx @@ -101,10 +101,10 @@ export default function PhotoPrevNext({ 'flex items-center', className, )}> -
+
- + PREV - / + + / + - + NEXT
From dcc5df0a4041fd77b809953f651674c9c74c0414 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 1 Sep 2024 00:25:44 -0500 Subject: [PATCH 07/26] Refine photo header grid --- src/photo/PhotoHeader.tsx | 18 ++++++++++-------- src/photo/PhotoPrevNext.tsx | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 16544418..4a1780f6 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -72,14 +72,13 @@ export default function PhotoHeader({ items={[ {entity ?? ( (selectedPhoto?.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) @@ -91,12 +90,12 @@ export default function PhotoHeader({ )} {entity && <> {selectedPhotoIndex !== undefined @@ -111,7 +110,10 @@ export default function PhotoHeader({ />} } -
+
{selectedPhoto ? renderPrevNext() : renderDateRange()} diff --git a/src/photo/PhotoPrevNext.tsx b/src/photo/PhotoPrevNext.tsx index 37c276b0..1535b333 100644 --- a/src/photo/PhotoPrevNext.tsx +++ b/src/photo/PhotoPrevNext.tsx @@ -114,7 +114,7 @@ export default function PhotoPrevNext({ prefetch > PREV @@ -133,7 +133,7 @@ export default function PhotoPrevNext({ prefetch > NEXT From ae8da21ae597a9759eead795fb315ad61be5c856 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 1 Sep 2024 12:22:42 -0500 Subject: [PATCH 08/26] Fallback to dates in photo nav --- src/photo/PhotoHeader.tsx | 22 ++++++++++------------ src/photo/PhotoPrevNext.tsx | 4 ++-- src/utility/date.ts | 5 ++++- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 4a1780f6..3e13c662 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -8,13 +8,11 @@ import { import ShareButton from '@/components/ShareButton'; import AnimateItems from '@/components/AnimateItems'; import { ReactNode } from 'react'; -import { - HIGH_DENSITY_GRID, - SHOW_PHOTO_TITLE_FALLBACK_TEXT, -} from '@/site/config'; +import { HIGH_DENSITY_GRID } from '@/site/config'; import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; import PhotoPrevNext from './PhotoPrevNext'; import PhotoLink from './PhotoLink'; +import { formatDate } from '@/utility/date'; export default function PhotoHeader({ tag, @@ -80,14 +78,14 @@ export default function PhotoHeader({ - {entity ?? ( - (selectedPhoto?.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT) - ? - : <>X of X - )} + {entity ?? (selectedPhoto + ? + {selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny')} + + : undefined)} PREV @@ -133,7 +133,7 @@ export default function PhotoPrevNext({ prefetch > NEXT diff --git a/src/utility/date.ts b/src/utility/date.ts index f758dd8f..fdbe6454 100644 --- a/src/utility/date.ts +++ b/src/utility/date.ts @@ -1,5 +1,6 @@ import { format, parseISO, parse } from 'date-fns'; +const DATE_STRING_FORMAT_TINY = 'dd MMM yy'; const DATE_STRING_FORMAT_SHORT = 'dd MMM yyyy'; const DATE_STRING_FORMAT_MEDIUM = 'dd MMM yy h:mma'; const DATE_STRING_FORMAT = 'dd MMM yyyy h:mma'; @@ -7,10 +8,12 @@ const DATE_STRING_FORMAT_POSTGRES = 'yyyy-MM-dd HH:mm:ss'; type AmbiguousTimestamp = number | string; -type Length = 'short' | 'medium' | 'long'; +type Length = 'tiny' | 'short' | 'medium' | 'long'; export const formatDate = (date: Date, length: Length = 'long') => { switch (length) { + case 'tiny': + return format(date, DATE_STRING_FORMAT_TINY); case 'short': return format(date, DATE_STRING_FORMAT_SHORT); case 'medium': From 68a8568e9d3f59eef00f56ab6a94b42ec6d2b3f3 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 1 Sep 2024 13:26:47 -0500 Subject: [PATCH 09/26] Make header text responsive, refine grid breakpoints --- src/photo/PhotoHeader.tsx | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 3e13c662..5e5b16d2 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -13,6 +13,7 @@ import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; import PhotoPrevNext from './PhotoPrevNext'; import PhotoLink from './PhotoLink'; import { formatDate } from '@/utility/date'; +import ResponsiveText from '@/components/primitives/ResponsiveText'; export default function PhotoHeader({ tag, @@ -45,6 +46,10 @@ export default function PhotoHeader({ ? photos.findIndex(photo => photo.id === selectedPhoto.id) : undefined; + const paginationLabel = + (indexNumber || (selectedPhotoIndex ?? 0 + 1)) + ' of ' + + (count ?? photos.length); + const renderPrevNext = () => {entity ?? (selectedPhoto ? {entity && <> {selectedPhotoIndex !== undefined - // eslint-disable-next-line max-len - ? `${entityVerb ? `${entityVerb} ` : ''}${indexNumber || (selectedPhotoIndex + 1)} of ${count ?? photos.length}` + ? + {entityVerb || 'PHOTO'} {paginationLabel} + : entityDescription} {selectedPhotoIndex === undefined && sharePath && Date: Sun, 1 Sep 2024 21:59:19 -0500 Subject: [PATCH 10/26] Remove 'Untitled' fallback in key views --- README.md | 1 - src/photo/PhotoLarge.tsx | 12 ++++-------- src/site/SiteChecklistClient.tsx | 10 ---------- src/site/config.ts | 3 --- 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index eeec7040..d9f56e91 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ Application behavior can be changed by configuring the following environment var - `NEXT_PUBLIC_MATTE_PHOTOS = 1` constrains the size of each photo, and enables a surrounding border (potentially useful for photos with tall aspect ratios) - `NEXT_PUBLIC_BLUR_DISABLED = 1` prevents image blur data being stored and displayed (potentially useful for limiting Postgres usage) - `NEXT_PUBLIC_GEO_PRIVACY = 1` disables collection/display of location-based data (⚠️ re-compresses uploaded images in order to remove GPS information) -- `NEXT_PUBLIC_HIDE_TITLE_FALLBACK_TEXT = 1` prevents showing "Untitled" for photos without titles - `NEXT_PUBLIC_IGNORE_PRIORITY_ORDER = 1` prevents `priority_order` field affecting photo order - `NEXT_PUBLIC_PUBLIC_API = 1` enables public API available at `/api` - `NEXT_PUBLIC_HIDE_REPO_LINK = 1` removes footer link to repo diff --git a/src/photo/PhotoLarge.tsx b/src/photo/PhotoLarge.tsx index 46b56f41..01fb21c3 100644 --- a/src/photo/PhotoLarge.tsx +++ b/src/photo/PhotoLarge.tsx @@ -25,10 +25,7 @@ import PhotoFilmSimulation from '@/simulation/PhotoFilmSimulation'; import { sortTags } from '@/tag'; import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; import PhotoLink from './PhotoLink'; -import { - SHOULD_PREFETCH_ALL_LINKS, - SHOW_PHOTO_TITLE_FALLBACK_TEXT, -} from '@/site/config'; +import { SHOULD_PREFETCH_ALL_LINKS } from '@/site/config'; import AdminPhotoMenuClient from '@/admin/AdminPhotoMenuClient'; import { RevalidatePhoto } from './InfinitePhotoScroll'; import { useRef } from 'react'; @@ -89,10 +86,9 @@ export default function PhotoLarge({ const { arePhotosMatted, isUserSignedIn } = useAppState(); - const hasTitle = showTitle && ( - Boolean(photo.title) || - SHOW_PHOTO_TITLE_FALLBACK_TEXT - ); + const hasTitle = + showTitle && + Boolean(photo.title); const hasTitleContent = hasTitle || diff --git a/src/site/SiteChecklistClient.tsx b/src/site/SiteChecklistClient.tsx index e1a82753..f1d4772a 100644 --- a/src/site/SiteChecklistClient.tsx +++ b/src/site/SiteChecklistClient.tsx @@ -59,7 +59,6 @@ export default function SiteChecklistClient({ arePhotosMatted, isBlurEnabled, isGeoPrivacyEnabled, - showPhotoTitleFallbackText, isPriorityOrderEnabled, isAiTextGenerationEnabled, aiTextAutoGeneratedFields, @@ -507,15 +506,6 @@ export default function SiteChecklistClient({ collection/display of location-based data: {renderEnvVars(['NEXT_PUBLIC_GEO_PRIVACY'])} - - Set environment variable to {'"1"'} to prevent - showing {'"Untitled"'} for photos without titles: - {renderEnvVars(['NEXT_PUBLIC_HIDE_TITLE_FALLBACK_TEXT'])} - Date: Sun, 1 Sep 2024 22:13:09 -0500 Subject: [PATCH 11/26] Bump dependencies --- package.json | 26 +- pnpm-lock.yaml | 796 ++++++++++++++++++++++++------------------------- 2 files changed, 411 insertions(+), 411 deletions(-) diff --git a/package.json b/package.json index fa18df5e..5609786f 100644 --- a/package.json +++ b/package.json @@ -9,45 +9,45 @@ "analyze": "ANALYZE=true next build" }, "dependencies": { - "@ai-sdk/openai": "^0.0.53", + "@ai-sdk/openai": "^0.0.54", "@aws-sdk/client-s3": "3.637.0", "@aws-sdk/s3-request-presigner": "3.637.0", - "@next/bundle-analyzer": "14.2.6", + "@next/bundle-analyzer": "14.2.7", "@radix-ui/react-dropdown-menu": "^2.1.1", "@tailwindcss/container-queries": "^0.1.1", - "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/forms": "^0.5.8", "@testing-library/jest-dom": "^6.5.0", - "@testing-library/react": "^16.0.0", + "@testing-library/react": "^16.0.1", "@types/jest": "^29.5.12", - "@types/node": "^22.5.0", - "@types/pg": "^8.11.6", - "@types/react": "18.3.4", + "@types/node": "^22.5.2", + "@types/pg": "^8.11.8", + "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "@typescript-eslint/eslint-plugin": "^7.17.0", "@typescript-eslint/parser": "^7.17.0", - "@upstash/ratelimit": "^2.0.1", + "@upstash/ratelimit": "^2.0.2", "@vercel/analytics": "^1.3.1", "@vercel/blob": "^0.23.4", "@vercel/kv": "^2.0.0", "@vercel/speed-insights": "^1.0.12", - "ai": "^3.3.17", + "ai": "^3.3.21", "autoprefixer": "10.4.20", "camelcase-keys": "^9.1.3", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "eslint": "8.57.0", - "eslint-config-next": "14.2.6", + "eslint-config-next": "14.2.7", "exifr": "^7.1.3", - "framer-motion": "^11.3.30", + "framer-motion": "^11.3.31", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "nanoid": "^5.0.7", - "next": "^14.2.6", + "next": "^14.2.7", "next-auth": "5.0.0-beta.19", "next-themes": "^0.3.0", "pg": "^8.12.0", - "postcss": "8.4.41", + "postcss": "8.4.43", "react": "18.3.1", "react-dom": "18.3.1", "react-icons": "^5.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03ef65ee..b37a71d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@ai-sdk/openai': - specifier: ^0.0.53 - version: 0.0.53(zod@3.23.8) + specifier: ^0.0.54 + version: 0.0.54(zod@3.23.8) '@aws-sdk/client-s3': specifier: 3.637.0 version: 3.637.0 @@ -18,35 +18,35 @@ importers: specifier: 3.637.0 version: 3.637.0 '@next/bundle-analyzer': - specifier: 14.2.6 - version: 14.2.6 + specifier: 14.2.7 + version: 14.2.7 '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 - version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tailwindcss/container-queries': specifier: ^0.1.1 version: 0.1.1(tailwindcss@3.4.10) '@tailwindcss/forms': - specifier: ^0.5.7 - version: 0.5.7(tailwindcss@3.4.10) + specifier: ^0.5.8 + version: 0.5.8(tailwindcss@3.4.10) '@testing-library/jest-dom': specifier: ^6.5.0 version: 6.5.0 '@testing-library/react': - specifier: ^16.0.0 - version: 16.0.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^16.0.1 + version: 16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jest': specifier: ^29.5.12 version: 29.5.12 '@types/node': - specifier: ^22.5.0 - version: 22.5.0 + specifier: ^22.5.2 + version: 22.5.2 '@types/pg': - specifier: ^8.11.6 - version: 8.11.6 + specifier: ^8.11.8 + version: 8.11.8 '@types/react': - specifier: 18.3.4 - version: 18.3.4 + specifier: 18.3.5 + version: 18.3.5 '@types/react-dom': specifier: 18.3.0 version: 18.3.0 @@ -57,11 +57,11 @@ importers: specifier: ^7.17.0 version: 7.17.0(eslint@8.57.0)(typescript@5.5.4) '@upstash/ratelimit': - specifier: ^2.0.1 - version: 2.0.1 + specifier: ^2.0.2 + version: 2.0.2 '@vercel/analytics': specifier: ^1.3.1 - version: 1.3.1(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/blob': specifier: ^0.23.4 version: 0.23.4 @@ -70,13 +70,13 @@ importers: version: 2.0.0 '@vercel/speed-insights': specifier: ^1.0.12 - version: 1.0.12(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) + version: 1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) ai: - specifier: ^3.3.17 - version: 3.3.17(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.3.21 + version: 3.3.21(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) autoprefixer: specifier: 10.4.20 - version: 10.4.20(postcss@8.4.41) + version: 10.4.20(postcss@8.4.43) camelcase-keys: specifier: ^9.1.3 version: 9.1.3 @@ -85,7 +85,7 @@ importers: version: 2.1.1 cmdk: specifier: ^1.0.0 - version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) date-fns: specifier: ^3.6.0 version: 3.6.0 @@ -93,17 +93,17 @@ importers: specifier: 8.57.0 version: 8.57.0 eslint-config-next: - specifier: 14.2.6 - version: 14.2.6(eslint@8.57.0)(typescript@5.5.4) + specifier: 14.2.7 + version: 14.2.7(eslint@8.57.0)(typescript@5.5.4) exifr: specifier: ^7.1.3 version: 7.1.3 framer-motion: - specifier: ^11.3.30 - version: 11.3.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^11.3.31 + version: 11.3.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.0) + version: 29.7.0(@types/node@22.5.2) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -111,11 +111,11 @@ importers: specifier: ^5.0.7 version: 5.0.7 next: - specifier: ^14.2.6 - version: 14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.7 + version: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.19 - version: 5.0.0-beta.19(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -123,8 +123,8 @@ importers: specifier: ^8.12.0 version: 8.12.0 postcss: - specifier: 8.4.41 - version: 8.4.41 + specifier: 8.4.43 + version: 8.4.43 react: specifier: 18.3.1 version: 18.3.1 @@ -164,14 +164,14 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} - '@ai-sdk/openai@0.0.53': - resolution: {integrity: sha512-Wm4+EYG2Zl5WmhvZJrLhrBY+C46FEQmDjQ9ZB5h2DvRoJZNKtNiVNFMEQuyBK7QwivvlCSMJkPRBfFcbJgNLMQ==} + '@ai-sdk/openai@0.0.54': + resolution: {integrity: sha512-0jqUSY9Lq0ie4AxnAucmiMhVBbs8ivvOW73sq3pCNA+LFeb2edOcnI0qmfGfHTn/VOjUCf2TvzQzHQx1Du3sYA==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/provider-utils@1.0.16': - resolution: {integrity: sha512-8Nd8vIkGTIthhfgJEdP9KyMlykehBNP/1J47eMC3vQqYgJV6r5Bgvl3LFVfWi9KzamiD8tp9nU2NJKTeo4MH/A==} + '@ai-sdk/provider-utils@1.0.17': + resolution: {integrity: sha512-2VyeTH5DQ6AxqvwdyytKIeiZyYTyJffpufWjE67zM2sXMIHgYl7fivo8m5wVl6Cbf1dFPSGKq//C9s+lz+NHrQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -179,12 +179,12 @@ packages: zod: optional: true - '@ai-sdk/provider@0.0.21': - resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} + '@ai-sdk/provider@0.0.22': + resolution: {integrity: sha512-smZ1/2jL/JSKnbhC6ama/PxI2D/psj+YAe0c0qpd5ComQCNFltg72VFf0rpUSFMmFuj1pCCNoBOCrvyl8HTZHQ==} engines: {node: '>=18'} - '@ai-sdk/react@0.0.51': - resolution: {integrity: sha512-Hq5splFSB6OVovHamXvpnd1S7jfIz/CXWjaLo9sr90jd/W370NA8GhBd6oSLfqMeKrPosV4qRBH5S8lv2bauqA==} + '@ai-sdk/react@0.0.53': + resolution: {integrity: sha512-sIsmTFoR/QHvUUkltmHwP4bPjwy2vko6j/Nj8ayxLhEHs04Ug+dwXQyfA7MwgimEE3BcDQpWL8ikVj0m3ZILWQ==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -195,8 +195,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.41': - resolution: {integrity: sha512-w4vSkd2388FJMnKPALP8SL4p3XAR70FAPj0qrd5AoYyQMMjX/E6zQGc8YAhAAnGSwiQwq/DZaE4y0lorwFVyOw==} + '@ai-sdk/solid@0.0.43': + resolution: {integrity: sha512-7PlPLaeMAu97oOY2gjywvKZMYHF+GDfUxYNcuJ4AZ3/MRBatzs/U2r4ClT1iH8uMOcMg02RX6UKzP5SgnUBjVw==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -204,8 +204,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.43': - resolution: {integrity: sha512-lUve6AGc3dtue14LLGiZs7J7L/3jEHh6SGXwuG/nDygeicKPzmG9drWZlhTdpNHN9wKtBgrCdJxQ96HKswLDNA==} + '@ai-sdk/svelte@0.0.45': + resolution: {integrity: sha512-w5Sdl0ArFIM3Fp8BbH4TUvlrS84WP/jN/wC1+fghMOXd7ceVO3Yhs9r71wTqndhgkLC7LAEX9Ll7ZEPfW9WBDA==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -213,8 +213,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.38': - resolution: {integrity: sha512-SyyfqBu7xnsfUuq3kSxzP+fxGCTMqaSL5WYGiBJpr/yLWySjBJCg/k7WueO440AqVpZBzCd3nWoCpPmjfMK8Yg==} + '@ai-sdk/ui-utils@0.0.40': + resolution: {integrity: sha512-f0eonPUBO13pIO8jA9IGux7IKMeqpvWK22GBr3tOoSRnO5Wg5GEpXZU1V0Po+unpeZHyEPahrWbj5JfXcyWCqw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -222,8 +222,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.43': - resolution: {integrity: sha512-bJB7muMpmP/wPKbDU8GCmDpI1HSkuTWz9DsQ4ZlBaCk5wqRLKxRtzM9NxfeQ15RojSLxYhKf/lDwW10RPtjcaw==} + '@ai-sdk/vue@0.0.45': + resolution: {integrity: sha512-bqeoWZqk88TQmfoPgnFUKkrvhOIcOcSH5LMPgzZ8XwDqz5tHHrMHzpPfHCj7XyYn4ROTFK/2kKdC/ta6Ko0fMw==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -851,65 +851,65 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/bundle-analyzer@14.2.6': - resolution: {integrity: sha512-6x5EdGfJu9Yl5ER6PYv1a3KXPBxU4OCu92oaqP9kxkhEyqHrJcSLYDax2xa7ehv92Ypw43zIHDvASX2F8qYNew==} + '@next/bundle-analyzer@14.2.7': + resolution: {integrity: sha512-Zz55BLjoNKiUjr8PJIMTXFQnbUEpk8qkXP5nmEcXvOorbruQOIdmkRa3sahlJZPWTjsZNpxwImhZf2yFMVMWeg==} - '@next/env@14.2.6': - resolution: {integrity: sha512-bs5DFKV+08EjWrl8EB+KKqev1ZTNONH1vFCaHh911aaB362NnP32UDTbE9VQhyiAgbFqJsfDkSxFERNDDb3j0g==} + '@next/env@14.2.7': + resolution: {integrity: sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ==} - '@next/eslint-plugin-next@14.2.6': - resolution: {integrity: sha512-d3+p4AjIYmhqzYHhhmkRYYN6ZU35TwZAKX08xKRfnHkz72KhWL2kxMFsDptpZs5e8bBGdepn7vn1+9DaF8iX+A==} + '@next/eslint-plugin-next@14.2.7': + resolution: {integrity: sha512-+7xh142AdhZGjY9/L0iFo7mqRBMJHe+q+uOL+hto1Lfo9DeWCGcR6no4StlFbVSVcA6fQLKEX6y6qhMsSKbgNQ==} - '@next/swc-darwin-arm64@14.2.6': - resolution: {integrity: sha512-BtJZb+hYXGaVJJivpnDoi3JFVn80SHKCiiRUW3kk1SY6UCUy5dWFFSbh+tGi5lHAughzeduMyxbLt3pspvXNSg==} + '@next/swc-darwin-arm64@14.2.7': + resolution: {integrity: sha512-UhZGcOyI9LE/tZL3h9rs/2wMZaaJKwnpAyegUVDGZqwsla6hMfeSj9ssBWQS9yA4UXun3pPhrFLVnw5KXZs3vw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.6': - resolution: {integrity: sha512-ZHRbGpH6KHarzm6qEeXKSElSXh8dS2DtDPjQt3IMwY8QVk7GbdDYjvV4NgSnDA9huGpGgnyy3tH8i5yHCqVkiQ==} + '@next/swc-darwin-x64@14.2.7': + resolution: {integrity: sha512-ys2cUgZYRc+CbyDeLAaAdZgS7N1Kpyy+wo0b/gAj+SeOeaj0Lw/q+G1hp+DuDiDAVyxLBCJXEY/AkhDmtihUTA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.6': - resolution: {integrity: sha512-O4HqUEe3ZvKshXHcDUXn1OybN4cSZg7ZdwHJMGCXSUEVUqGTJVsOh17smqilIjooP/sIJksgl+1kcf2IWMZWHg==} + '@next/swc-linux-arm64-gnu@14.2.7': + resolution: {integrity: sha512-2xoWtE13sUJ3qrC1lwE/HjbDPm+kBQYFkkiVECJWctRASAHQ+NwjMzgrfqqMYHfMxFb5Wws3w9PqzZJqKFdWcQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.6': - resolution: {integrity: sha512-xUcdhr2hfalG8RDDGSFxQ75yOG894UlmFS4K2M0jLrUhauRBGOtUOxoDVwiIIuZQwZ3Y5hDsazNjdYGB0cQ9yQ==} + '@next/swc-linux-arm64-musl@14.2.7': + resolution: {integrity: sha512-+zJ1gJdl35BSAGpkCbfyiY6iRTaPrt3KTl4SF/B1NyELkqqnrNX6cp4IjjjxKpd64/7enI0kf6b9O1Uf3cL0pw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.6': - resolution: {integrity: sha512-InosKxw8UMcA/wEib5n2QttwHSKHZHNSbGcMepBM0CTcNwpxWzX32KETmwbhKod3zrS8n1vJ+DuJKbL9ZAB0Ag==} + '@next/swc-linux-x64-gnu@14.2.7': + resolution: {integrity: sha512-m6EBqrskeMUzykBrv0fDX/28lWIBGhMzOYaStp0ihkjzIYJiKUOzVYD1gULHc8XDf5EMSqoH/0/TRAgXqpQwmw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.6': - resolution: {integrity: sha512-d4QXfJmt5pGJ7cG8qwxKSBnO5AXuKAFYxV7qyDRHnUNvY/dgDh+oX292gATpB2AAHgjdHd5ks1wXxIEj6muLUQ==} + '@next/swc-linux-x64-musl@14.2.7': + resolution: {integrity: sha512-gUu0viOMvMlzFRz1r1eQ7Ql4OE+hPOmA7smfZAhn8vC4+0swMZaZxa9CSIozTYavi+bJNDZ3tgiSdMjmMzRJlQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.6': - resolution: {integrity: sha512-AlgIhk4/G+PzOG1qdF1b05uKTMsuRatFlFzAi5G8RZ9h67CVSSuZSbqGHbJDlcV1tZPxq/d4G0q6qcHDKWf4aQ==} + '@next/swc-win32-arm64-msvc@14.2.7': + resolution: {integrity: sha512-PGbONHIVIuzWlYmLvuFKcj+8jXnLbx4WrlESYlVnEzDsa3+Q2hI1YHoXaSmbq0k4ZwZ7J6sWNV4UZfx1OeOlbQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.6': - resolution: {integrity: sha512-hNukAxq7hu4o5/UjPp5jqoBEtrpCbOmnUqZSKNJG8GrUVzfq0ucdhQFVrHcLRMvQcwqqDh1a5AJN9ORnNDpgBQ==} + '@next/swc-win32-ia32-msvc@14.2.7': + resolution: {integrity: sha512-BiSY5umlx9ed5RQDoHcdbuKTUkuFORDqzYKPHlLeS+STUWQKWziVOn3Ic41LuTBvqE0TRJPKpio9GSIblNR+0w==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.6': - resolution: {integrity: sha512-NANtw+ead1rSDK1jxmzq3TYkl03UNK2KHqUYf1nIhNci6NkeqBD4s1njSzYGIlSHxCK+wSaL8RXZm4v+NF/pMw==} + '@next/swc-win32-x64-msvc@14.2.7': + resolution: {integrity: sha512-pxsI23gKWRt/SPHFkDEsP+w+Nd7gK37Hpv0ngc5HpWy2e7cKx9zR/+Q2ptAUqICNTecAaGWvmhway7pj/JLEWA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1585,10 +1585,10 @@ packages: peerDependencies: tailwindcss: '>=3.2.0' - '@tailwindcss/forms@0.5.7': - resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + '@tailwindcss/forms@0.5.8': + resolution: {integrity: sha512-DJs7B7NPD0JH7BVvdHWNviWmunlFhuEkz7FyFxE4japOWYMLl9b1D6+Z9mivJJPWr6AEbmlPqgiFRyLwFB1SgQ==} peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' '@testing-library/dom@10.1.0': resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} @@ -1598,8 +1598,8 @@ packages: resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react@16.0.0': - resolution: {integrity: sha512-guuxUKRWQ+FgNX0h0NS0FIq3Q3uLtWVpBzcLOggmfMoUpgBnzBzvLLd4fbm6yS8ydJd94cIfY4yP9qUQjM2KwQ==} + '@testing-library/react@16.0.1': + resolution: {integrity: sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -1662,11 +1662,11 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.5.0': - resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==} + '@types/node@22.5.2': + resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} - '@types/pg@8.11.6': - resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + '@types/pg@8.11.8': + resolution: {integrity: sha512-IqpCf8/569txXN/HoP5i1LjXfKZWL76Yr2R77xgeIICUbAYHeoaEZFhYHo2uDftecLWrTJUq63JvQu8q3lnDyA==} '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} @@ -1674,8 +1674,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.4': - resolution: {integrity: sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==} + '@types/react@18.3.5': + resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1785,8 +1785,8 @@ packages: resolution: {integrity: sha512-7qJHGxpQgQr9/vmeS1PktEwvNAF7TI4iJDi8Pu2CFZ9YUGHZH4fOP5TfYlZ4aVxfopnELiE4BS4FBjyK7V1/xQ==} engines: {node: '>=16.0.0'} - '@upstash/ratelimit@2.0.1': - resolution: {integrity: sha512-J+0hlkvWUjlVrjcBQhWx7gbaUGsvFF59i+GAx7YQk8L0E0MQ93xzCPu02uaXhGDJGkxiar7nRRPqj3hs+CdAJg==} + '@upstash/ratelimit@2.0.2': + resolution: {integrity: sha512-1J5Szbu5r9OTV2F95SinFVo5DQ7jm1Gmal9xD7HrcBlOxyn7YXToEsK2j6lSNJEhklvKl96Ntzzd3Q/yR9GB2A==} '@upstash/redis@1.31.3': resolution: {integrity: sha512-KtVgWBUEx/LGbR8oRwYexwzHh3s5DNqYW0bjkD+gjFZVOnREJITvK+hC4PjSSD+8D4qJ+Xbkfmy8ANADZ9EUFg==} @@ -1887,8 +1887,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - ai@3.3.17: - resolution: {integrity: sha512-Z3cPRImctE8GMZV0e15ZlO+bqfLlVWqO+JiShJT20l3iYlZYwsQMQXjt5hiF3m7+VvbzIq+ORdp1Ai11GxzBVQ==} + ai@3.3.21: + resolution: {integrity: sha512-gUkYEpghc2/+/2ZO82GSf3R2nMXiC0ZZBvhubetVTK93RW1ts/wuuLig7SH3K3vPgj3us0XK67/9FC1XOFwupg==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2478,8 +2478,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-next@14.2.6: - resolution: {integrity: sha512-z0URA5LO6y8lS/YLN0EDW/C4LEkDODjJzA37dvLVdzCPzuewjzTe1os5g3XclZAZrQ8X8hPaSMQ2JuVWwMmrTA==} + eslint-config-next@14.2.7: + resolution: {integrity: sha512-ppmy+QdQ7qkuCHGDlPjWaoSbJvjGpWSBD4zEW8f1eWlxYXYpZK7QzBOer1EcHKT3uKhlY1JjUus9g7Kvv712rw==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -2669,8 +2669,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.3.30: - resolution: {integrity: sha512-9VmqGe9OIjfMoCcs+ZsKXlv6JaG5QagKX2F1uSbkG3Z33wgjnz60Kw+CngC1M49rDYau+Y9aL+8jGagAwrbVyw==} + framer-motion@11.3.31: + resolution: {integrity: sha512-Xmxs08WBXnc2tNzNZbFSpquI33lvleJg4Y+hmZ+vFkn+laN9ZnR3gbZnNGKDtuz7c/x3u8dLg05OU3EhLobCsg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -3429,8 +3429,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.6: - resolution: {integrity: sha512-57Su7RqXs5CBKKKOagt8gPhMM3CpjgbeQhrtei2KLAA1vTNm7jfKS+uDARkSW8ZETUflDCBIsUKGSyQdRs4U4g==} + next@14.2.7: + resolution: {integrity: sha512-4Qy2aK0LwH4eQiSvQWyKuC7JXE13bIopEQesWE0c/P3uuNRnZCQanI0vsrMLmUQJLAto+A+/8+sve2hd+BQuOQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -3694,8 +3694,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.43: + resolution: {integrity: sha512-gJAQVYbh5R3gYm33FijzCZj7CHyQ3hWMgJMprLUlIYqCwTeZhBQ19wp0e9mA25BUbEvY5+EXuuaAjqQsrBxQBQ==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -4495,67 +4495,67 @@ snapshots: '@adobe/css-tools@4.4.0': {} - '@ai-sdk/openai@0.0.53(zod@3.23.8)': + '@ai-sdk/openai@0.0.54(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) + '@ai-sdk/provider': 0.0.22 + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) zod: 3.23.8 - '@ai-sdk/provider-utils@1.0.16(zod@3.23.8)': + '@ai-sdk/provider-utils@1.0.17(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider': 0.0.22 eventsource-parser: 1.1.2 nanoid: 3.3.6 secure-json-parse: 2.7.0 optionalDependencies: zod: 3.23.8 - '@ai-sdk/provider@0.0.21': + '@ai-sdk/provider@0.0.22': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.51(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/react@0.0.53(react@18.3.1)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.38(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.41(solid-js@1.8.17)(zod@3.23.8)': + '@ai-sdk/solid@0.0.43(solid-js@1.8.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.38(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) optionalDependencies: solid-js: 1.8.17 transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.43(svelte@4.2.17)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.45(svelte@4.2.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.38(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) sswr: 2.1.0(svelte@4.2.17) optionalDependencies: svelte: 4.2.17 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.38(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.40(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) + '@ai-sdk/provider': 0.0.22 + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.23.2(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.43(vue@3.4.27(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.45(vue@3.4.27(typescript@5.5.4))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.38(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) swrv: 1.0.4(vue@3.4.27(typescript@5.5.4)) optionalDependencies: vue: 3.4.27(typescript@5.5.4) @@ -5451,7 +5451,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -5464,14 +5464,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.5.0) + jest-config: 29.7.0(@types/node@22.5.2) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -5496,7 +5496,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -5514,7 +5514,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -5536,7 +5536,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -5606,7 +5606,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.0 + '@types/node': 22.5.2 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -5627,44 +5627,44 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/bundle-analyzer@14.2.6': + '@next/bundle-analyzer@14.2.7': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@14.2.6': {} + '@next/env@14.2.7': {} - '@next/eslint-plugin-next@14.2.6': + '@next/eslint-plugin-next@14.2.7': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.6': + '@next/swc-darwin-arm64@14.2.7': optional: true - '@next/swc-darwin-x64@14.2.6': + '@next/swc-darwin-x64@14.2.7': optional: true - '@next/swc-linux-arm64-gnu@14.2.6': + '@next/swc-linux-arm64-gnu@14.2.7': optional: true - '@next/swc-linux-arm64-musl@14.2.6': + '@next/swc-linux-arm64-musl@14.2.7': optional: true - '@next/swc-linux-x64-gnu@14.2.6': + '@next/swc-linux-x64-gnu@14.2.7': optional: true - '@next/swc-linux-x64-musl@14.2.6': + '@next/swc-linux-x64-musl@14.2.7': optional: true - '@next/swc-win32-arm64-msvc@14.2.6': + '@next/swc-win32-arm64-msvc@14.2.7': optional: true - '@next/swc-win32-ia32-msvc@14.2.6': + '@next/swc-win32-ia32-msvc@14.2.7': optional: true - '@next/swc-win32-x64-msvc@14.2.6': + '@next/swc-win32-x64-msvc@14.2.7': optional: true '@nodelib/fs.scandir@2.1.5': @@ -5694,380 +5694,380 @@ snapshots: '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-context@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-context@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-context@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.5)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.3.4)(react@18.3.1) + react-remove-scroll: 2.5.5(@types/react@18.3.5)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-id@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-id@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.7(@types/react@18.3.4)(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.5)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.5)(react@18.3.1) '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 - '@radix-ui/react-slot@1.0.2(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-slot@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.5)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.4)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.5)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.4)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@radix-ui/rect@1.1.0': {} @@ -6425,7 +6425,7 @@ snapshots: dependencies: tailwindcss: 3.4.10 - '@tailwindcss/forms@0.5.7(tailwindcss@3.4.10)': + '@tailwindcss/forms@0.5.8(tailwindcss@3.4.10)': dependencies: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.10 @@ -6451,14 +6451,14 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.0.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@testing-library/dom': 10.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 '@types/react-dom': 18.3.0 '@tootallnate/once@2.0.0': {} @@ -6494,7 +6494,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.2 '@types/istanbul-lib-coverage@2.0.6': {} @@ -6513,19 +6513,19 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 '@types/json5@0.0.29': {} - '@types/node@22.5.0': + '@types/node@22.5.2': dependencies: undici-types: 6.19.6 - '@types/pg@8.11.6': + '@types/pg@8.11.8': dependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.2 pg-protocol: 1.6.1 pg-types: 4.0.2 @@ -6533,9 +6533,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - '@types/react@18.3.4': + '@types/react@18.3.5': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -6677,7 +6677,7 @@ snapshots: dependencies: '@upstash/redis': 1.31.3 - '@upstash/ratelimit@2.0.1': + '@upstash/ratelimit@2.0.2': dependencies: '@upstash/core-analytics': 0.0.10 @@ -6685,11 +6685,11 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.3.1(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 '@vercel/blob@0.23.4': @@ -6704,9 +6704,9 @@ snapshots: dependencies: '@upstash/redis': 1.31.3 - '@vercel/speed-insights@1.0.12(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': + '@vercel/speed-insights@1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': optionalDependencies: - next: 14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 svelte: 4.2.17 vue: 3.4.27(typescript@5.5.4) @@ -6733,7 +6733,7 @@ snapshots: '@vue/shared': 3.4.27 estree-walker: 2.0.2 magic-string: 0.30.10 - postcss: 8.4.41 + postcss: 8.4.43 source-map-js: 1.2.0 '@vue/compiler-ssr@3.4.27': @@ -6785,15 +6785,15 @@ snapshots: transitivePeerDependencies: - supports-color - ai@3.3.17(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8): + ai@3.3.21(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8): dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.16(zod@3.23.8) - '@ai-sdk/react': 0.0.51(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.41(solid-js@1.8.17)(zod@3.23.8) - '@ai-sdk/svelte': 0.0.43(svelte@4.2.17)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.38(zod@3.23.8) - '@ai-sdk/vue': 0.0.43(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider': 0.0.22 + '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/react': 0.0.53(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.43(solid-js@1.8.17)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.45(svelte@4.2.17)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) + '@ai-sdk/vue': 0.0.45(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6942,14 +6942,14 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.4.41): + autoprefixer@10.4.20(postcss@8.4.43): dependencies: browserslist: 4.23.3 caniuse-lite: 1.0.30001651 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.41 + postcss: 8.4.43 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -7138,10 +7138,10 @@ snapshots: clsx@2.1.1: {} - cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -7196,13 +7196,13 @@ snapshots: cookie@0.6.0: {} - create-jest@29.7.0(@types/node@22.5.0): + create-jest@29.7.0(@types/node@22.5.2): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.5.0) + jest-config: 29.7.0(@types/node@22.5.2) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -7467,9 +7467,9 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@14.2.6(eslint@8.57.0)(typescript@5.5.4): + eslint-config-next@14.2.7(eslint@8.57.0)(typescript@5.5.4): dependencies: - '@next/eslint-plugin-next': 14.2.6 + '@next/eslint-plugin-next': 14.2.7 '@rushstack/eslint-patch': 1.10.3 '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 @@ -7775,7 +7775,7 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.3.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.3.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: tslib: 2.6.2 optionalDependencies: @@ -8160,7 +8160,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -8180,16 +8180,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.5.0): + jest-cli@29.7.0(@types/node@22.5.2): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.0) + create-jest: 29.7.0(@types/node@22.5.2) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.5.0) + jest-config: 29.7.0(@types/node@22.5.2) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8199,7 +8199,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.5.0): + jest-config@29.7.0(@types/node@22.5.2): dependencies: '@babel/core': 7.24.5 '@jest/test-sequencer': 29.7.0 @@ -8224,7 +8224,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.2 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8254,7 +8254,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -8268,7 +8268,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8278,7 +8278,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.5.0 + '@types/node': 22.5.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8317,7 +8317,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -8352,7 +8352,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -8380,7 +8380,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 @@ -8426,7 +8426,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8445,7 +8445,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 22.5.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -8454,17 +8454,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.5.0): + jest@29.7.0(@types/node@22.5.2): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.5.0) + jest-cli: 29.7.0(@types/node@22.5.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -8674,10 +8674,10 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.19(next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.32.0 - next: 14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -8685,9 +8685,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.6(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.6 + '@next/env': 14.2.7 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001651 @@ -8697,15 +8697,15 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.6 - '@next/swc-darwin-x64': 14.2.6 - '@next/swc-linux-arm64-gnu': 14.2.6 - '@next/swc-linux-arm64-musl': 14.2.6 - '@next/swc-linux-x64-gnu': 14.2.6 - '@next/swc-linux-x64-musl': 14.2.6 - '@next/swc-win32-arm64-msvc': 14.2.6 - '@next/swc-win32-ia32-msvc': 14.2.6 - '@next/swc-win32-x64-msvc': 14.2.6 + '@next/swc-darwin-arm64': 14.2.7 + '@next/swc-darwin-x64': 14.2.7 + '@next/swc-linux-arm64-gnu': 14.2.7 + '@next/swc-linux-arm64-musl': 14.2.7 + '@next/swc-linux-x64-gnu': 14.2.7 + '@next/swc-linux-x64-musl': 14.2.7 + '@next/swc-win32-arm64-msvc': 14.2.7 + '@next/swc-win32-ia32-msvc': 14.2.7 + '@next/swc-win32-x64-msvc': 14.2.7 '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' @@ -8911,28 +8911,28 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.41): + postcss-import@15.1.0(postcss@8.4.43): dependencies: - postcss: 8.4.41 + postcss: 8.4.43 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.41): + postcss-js@4.0.1(postcss@8.4.43): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.41 + postcss: 8.4.43 - postcss-load-config@4.0.2(postcss@8.4.41): + postcss-load-config@4.0.2(postcss@8.4.43): dependencies: lilconfig: 3.1.1 yaml: 2.4.2 optionalDependencies: - postcss: 8.4.41 + postcss: 8.4.43 - postcss-nested@6.0.1(postcss@8.4.41): + postcss-nested@6.0.1(postcss@8.4.43): dependencies: - postcss: 8.4.41 + postcss: 8.4.43 postcss-selector-parser: 6.0.16 postcss-selector-parser@6.0.16: @@ -8948,7 +8948,7 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.41: + postcss@8.4.43: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -9038,44 +9038,44 @@ snapshots: react-is@18.3.1: {} - react-remove-scroll-bar@2.3.6(@types/react@18.3.4)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.4)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - react-remove-scroll@2.5.5(@types/react@18.3.4)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.4)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.4)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.5)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.4)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.4)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.5)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.5)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - react-remove-scroll@2.5.7(@types/react@18.3.4)(react@18.3.1): + react-remove-scroll@2.5.7(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.4)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.4)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.5)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.4)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.4)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.5)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.5)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 - react-style-singleton@2.2.1(@types/react@18.3.4)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.5)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 react@18.3.1: dependencies: @@ -9456,11 +9456,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.41 - postcss-import: 15.1.0(postcss@8.4.41) - postcss-js: 4.0.1(postcss@8.4.41) - postcss-load-config: 4.0.2(postcss@8.4.41) - postcss-nested: 6.0.1(postcss@8.4.41) + postcss: 8.4.43 + postcss-import: 15.1.0(postcss@8.4.43) + postcss-js: 4.0.1(postcss@8.4.43) + postcss-load-config: 4.0.2(postcss@8.4.43) + postcss-nested: 6.0.1(postcss@8.4.43) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 @@ -9609,24 +9609,24 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.2(@types/react@18.3.4)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 use-debounce@10.0.3(react@18.3.1): dependencies: react: 18.3.1 - use-sidecar@1.1.2(@types/react@18.3.4)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.5)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.5 use-sync-external-store@1.2.2(react@18.3.1): dependencies: From 03616391aa6c4afab51db1170210f05b56eeafcd Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Wed, 4 Sep 2024 10:44:46 -0500 Subject: [PATCH 12/26] Simplify PhotoHeader component --- src/photo/PhotoHeader.tsx | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 5e5b16d2..88bdb5d0 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -23,7 +23,7 @@ export default function PhotoHeader({ photos, selectedPhoto, entity, - entityVerb, + entityVerb = 'PHOTO', entityDescription, sharePath, indexNumber, @@ -50,6 +50,8 @@ export default function PhotoHeader({ (indexNumber || (selectedPhotoIndex ?? 0 + 1)) + ' of ' + (count ?? photos.length); + const isPhotoSet = selectedPhotoIndex === undefined; + const renderPrevNext = () => - {entity ?? (selectedPhoto - ? {selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny')} - - : undefined)} + )} {entity && <> - {selectedPhotoIndex !== undefined - ? - {entityVerb || 'PHOTO'} {paginationLabel} - - : entityDescription} - {selectedPhotoIndex === undefined && sharePath && - } + {isPhotoSet + ? <> + {entityDescription} + {sharePath && + } + + : + {entityVerb} {paginationLabel} + } }
Date: Wed, 4 Sep 2024 11:05:24 -0500 Subject: [PATCH 13/26] Add debugging tools for grid density --- src/components/cmdk/CommandKClient.tsx | 6 ++++++ src/photo/PhotoGrid.tsx | 5 +++-- src/photo/PhotoHeader.tsx | 19 +++++++++++++------ src/state/AppState.ts | 2 ++ src/state/AppStateProvider.tsx | 6 +++++- 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/components/cmdk/CommandKClient.tsx b/src/components/cmdk/CommandKClient.tsx index cb9d9ef2..4e1e21c2 100644 --- a/src/components/cmdk/CommandKClient.tsx +++ b/src/components/cmdk/CommandKClient.tsx @@ -86,12 +86,14 @@ export default function CommandKClient({ hiddenPhotosCount, selectedPhotoIds, setSelectedPhotoIds, + isGridHighDensity, arePhotosMatted, shouldShowBaselineGrid, shouldDebugImageFallbacks, setIsCommandKOpen: setIsOpen, setShouldRespondToKeyboardCommands, setShouldShowBaselineGrid, + setIsGridHighDensity, setArePhotosMatted, setShouldDebugImageFallbacks, } = useAppState(); @@ -240,6 +242,10 @@ export default function CommandKClient({ label: 'Toggle Photo Matting', action: () => setArePhotosMatted?.(prev => !prev), annotation: arePhotosMatted ? : undefined, + }, { + label: 'Toggle High Density Grid', + action: () => setIsGridHighDensity?.(prev => !prev), + annotation: isGridHighDensity ? : undefined, }, { label: 'Toggle Image Fallbacks', action: () => setShouldDebugImageFallbacks?.(prev => !prev), diff --git a/src/photo/PhotoGrid.tsx b/src/photo/PhotoGrid.tsx index d5678a49..8bc03f9d 100644 --- a/src/photo/PhotoGrid.tsx +++ b/src/photo/PhotoGrid.tsx @@ -4,7 +4,7 @@ import { Photo, PhotoSetAttributes } from '.'; import PhotoMedium from './PhotoMedium'; import { clsx } from 'clsx/lite'; import AnimateItems from '@/components/AnimateItems'; -import { GRID_ASPECT_RATIO, HIGH_DENSITY_GRID } from '@/site/config'; +import { GRID_ASPECT_RATIO } from '@/site/config'; import { useAppState } from '@/state/AppState'; import SelectTileOverlay from '@/components/SelectTileOverlay'; @@ -45,6 +45,7 @@ export default function PhotoGrid({ isUserSignedIn, selectedPhotoIds, setSelectedPhotoIds, + isGridHighDensity, } = useAppState(); return ( @@ -53,7 +54,7 @@ export default function PhotoGrid({ 'grid gap-0.5 sm:gap-1', small ? 'grid-cols-3 xs:grid-cols-6' - : HIGH_DENSITY_GRID + : isGridHighDensity ? 'grid-cols-2 xs:grid-cols-4 lg:grid-cols-6' : 'grid-cols-2 sm:grid-cols-4 md:grid-cols-3 lg:grid-cols-4', 'items-center', diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 88bdb5d0..863ce75c 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -1,3 +1,5 @@ +'use client'; + import { clsx } from 'clsx/lite'; import { Photo, @@ -8,12 +10,12 @@ import { import ShareButton from '@/components/ShareButton'; import AnimateItems from '@/components/AnimateItems'; import { ReactNode } from 'react'; -import { HIGH_DENSITY_GRID } from '@/site/config'; import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; import PhotoPrevNext from './PhotoPrevNext'; import PhotoLink from './PhotoLink'; import { formatDate } from '@/utility/date'; import ResponsiveText from '@/components/primitives/ResponsiveText'; +import { useAppState } from '@/state/AppState'; export default function PhotoHeader({ tag, @@ -40,6 +42,8 @@ export default function PhotoHeader({ count?: number dateRange?: PhotoDateRange } & PhotoSetAttributes) { + const { isGridHighDensity } = useAppState(); + const { start, end } = dateRangeForPhotos(photos, dateRange); const selectedPhotoIndex = selectedPhoto @@ -78,13 +82,13 @@ export default function PhotoHeader({ key="PhotosHeader" className={clsx( 'grid gap-0.5 sm:gap-1 items-start grid-cols-4', - HIGH_DENSITY_GRID + isGridHighDensity ? 'lg:grid-cols-6' : 'md:grid-cols-3 lg:grid-cols-4', )}> @@ -93,7 +97,10 @@ export default function PhotoHeader({ photo={selectedPhoto} className="uppercase font-bold" > - {selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny')} + { + selectedPhoto.title || + formatDate(selectedPhoto.takenAt, 'tiny') + } )} diff --git a/src/state/AppState.ts b/src/state/AppState.ts index 49814201..0d309611 100644 --- a/src/state/AppState.ts +++ b/src/state/AppState.ts @@ -27,6 +27,8 @@ export interface AppStateContext { isPerformingSelectEdit?: boolean setIsPerformingSelectEdit?: Dispatch> // DEBUG + isGridHighDensity?: boolean + setIsGridHighDensity?: Dispatch> arePhotosMatted?: boolean setArePhotosMatted?: Dispatch> shouldDebugImageFallbacks?: boolean diff --git a/src/state/AppStateProvider.tsx b/src/state/AppStateProvider.tsx index af176de1..89d89059 100644 --- a/src/state/AppStateProvider.tsx +++ b/src/state/AppStateProvider.tsx @@ -6,7 +6,7 @@ import { AnimationConfig } from '@/components/AnimateItems'; import usePathnames from '@/utility/usePathnames'; import { getAuthAction } from '@/auth/actions'; import useSWR from 'swr'; -import { MATTE_PHOTOS } from '@/site/config'; +import { HIGH_DENSITY_GRID, MATTE_PHOTOS } from '@/site/config'; import { getPhotosHiddenMetaCachedAction } from '@/photo/actions'; export default function AppStateProvider({ @@ -39,6 +39,8 @@ export default function AppStateProvider({ const [isPerformingSelectEdit, setIsPerformingSelectEdit] = useState(false); // DEBUG + const [isGridHighDensity, setIsGridHighDensity] = + useState(HIGH_DENSITY_GRID); const [arePhotosMatted, setArePhotosMatted] = useState(MATTE_PHOTOS); const [shouldDebugImageFallbacks, setShouldDebugImageFallbacks] = @@ -101,6 +103,8 @@ export default function AppStateProvider({ isPerformingSelectEdit, setIsPerformingSelectEdit, // DEBUG + isGridHighDensity, + setIsGridHighDensity, arePhotosMatted, setArePhotosMatted, shouldDebugImageFallbacks, From 65120de9cb16c0d54f9b917d1966afdbc4beeea2 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Wed, 4 Sep 2024 14:49:19 -0500 Subject: [PATCH 14/26] Refactor photo header breakpoints --- src/photo/PhotoHeader.tsx | 56 ++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index 863ce75c..a0e33a56 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -54,7 +54,11 @@ export default function PhotoHeader({ (indexNumber || (selectedPhotoIndex ?? 0 + 1)) + ' of ' + (count ?? photos.length); - const isPhotoSet = selectedPhotoIndex === undefined; + const headerType = selectedPhotoIndex === undefined + ? 'photo-set' + : entity + ? 'photo-detail-with-entity' + : 'photo-detail'; const renderPrevNext = () => - {entity ?? (selectedPhoto !== undefined && { selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny') } )} - - + {/* Content B: Filter Set Meta or Photo Pagination */} +
{entity && <> - {isPhotoSet + {headerType === 'photo-set' ? <> {entityDescription} {sharePath && @@ -130,9 +147,12 @@ export default function PhotoHeader({ {entityVerb} {paginationLabel} } } - +
+ {/* Content C: Nav */}
{selectedPhoto From 78b6aa7bbd637455aee680a350e8b51a5ea00cd9 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Thu, 5 Sep 2024 13:58:20 -0500 Subject: [PATCH 15/26] Bump dependencies --- package.json | 22 +- pnpm-lock.yaml | 584 ++++++++++++++++++++++++++++--------------------- 2 files changed, 345 insertions(+), 261 deletions(-) diff --git a/package.json b/package.json index 5609786f..4c53413f 100644 --- a/package.json +++ b/package.json @@ -9,17 +9,17 @@ "analyze": "ANALYZE=true next build" }, "dependencies": { - "@ai-sdk/openai": "^0.0.54", - "@aws-sdk/client-s3": "3.637.0", - "@aws-sdk/s3-request-presigner": "3.637.0", - "@next/bundle-analyzer": "14.2.7", + "@ai-sdk/openai": "^0.0.56", + "@aws-sdk/client-s3": "3.645.0", + "@aws-sdk/s3-request-presigner": "3.645.0", + "@next/bundle-analyzer": "14.2.8", "@radix-ui/react-dropdown-menu": "^2.1.1", "@tailwindcss/container-queries": "^0.1.1", - "@tailwindcss/forms": "^0.5.8", + "@tailwindcss/forms": "^0.5.9", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", "@types/jest": "^29.5.12", - "@types/node": "^22.5.2", + "@types/node": "^22.5.4", "@types/pg": "^8.11.8", "@types/react": "18.3.5", "@types/react-dom": "18.3.0", @@ -30,24 +30,24 @@ "@vercel/blob": "^0.23.4", "@vercel/kv": "^2.0.0", "@vercel/speed-insights": "^1.0.12", - "ai": "^3.3.21", + "ai": "^3.3.27", "autoprefixer": "10.4.20", "camelcase-keys": "^9.1.3", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "eslint": "8.57.0", - "eslint-config-next": "14.2.7", + "eslint-config-next": "14.2.8", "exifr": "^7.1.3", - "framer-motion": "^11.3.31", + "framer-motion": "^11.5.4", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "nanoid": "^5.0.7", - "next": "^14.2.7", + "next": "^14.2.8", "next-auth": "5.0.0-beta.19", "next-themes": "^0.3.0", "pg": "^8.12.0", - "postcss": "8.4.43", + "postcss": "8.4.45", "react": "18.3.1", "react-dom": "18.3.1", "react-icons": "^5.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b37a71d4..b05f2c84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@ai-sdk/openai': - specifier: ^0.0.54 - version: 0.0.54(zod@3.23.8) + specifier: ^0.0.56 + version: 0.0.56(zod@3.23.8) '@aws-sdk/client-s3': - specifier: 3.637.0 - version: 3.637.0 + specifier: 3.645.0 + version: 3.645.0 '@aws-sdk/s3-request-presigner': - specifier: 3.637.0 - version: 3.637.0 + specifier: 3.645.0 + version: 3.645.0 '@next/bundle-analyzer': - specifier: 14.2.7 - version: 14.2.7 + specifier: 14.2.8 + version: 14.2.8 '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -27,8 +27,8 @@ importers: specifier: ^0.1.1 version: 0.1.1(tailwindcss@3.4.10) '@tailwindcss/forms': - specifier: ^0.5.8 - version: 0.5.8(tailwindcss@3.4.10) + specifier: ^0.5.9 + version: 0.5.9(tailwindcss@3.4.10) '@testing-library/jest-dom': specifier: ^6.5.0 version: 6.5.0 @@ -39,8 +39,8 @@ importers: specifier: ^29.5.12 version: 29.5.12 '@types/node': - specifier: ^22.5.2 - version: 22.5.2 + specifier: ^22.5.4 + version: 22.5.4 '@types/pg': specifier: ^8.11.8 version: 8.11.8 @@ -61,7 +61,7 @@ importers: version: 2.0.2 '@vercel/analytics': specifier: ^1.3.1 - version: 1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.3.1(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/blob': specifier: ^0.23.4 version: 0.23.4 @@ -70,13 +70,13 @@ importers: version: 2.0.0 '@vercel/speed-insights': specifier: ^1.0.12 - version: 1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) + version: 1.0.12(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) ai: - specifier: ^3.3.21 - version: 3.3.21(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.3.27 + version: 3.3.27(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) autoprefixer: specifier: 10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) camelcase-keys: specifier: ^9.1.3 version: 9.1.3 @@ -93,17 +93,17 @@ importers: specifier: 8.57.0 version: 8.57.0 eslint-config-next: - specifier: 14.2.7 - version: 14.2.7(eslint@8.57.0)(typescript@5.5.4) + specifier: 14.2.8 + version: 14.2.8(eslint@8.57.0)(typescript@5.5.4) exifr: specifier: ^7.1.3 version: 7.1.3 framer-motion: - specifier: ^11.3.31 - version: 11.3.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^11.5.4 + version: 11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.2) + version: 29.7.0(@types/node@22.5.4) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -111,11 +111,11 @@ importers: specifier: ^5.0.7 version: 5.0.7 next: - specifier: ^14.2.7 - version: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.8 + version: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.19 - version: 5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.19(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -123,8 +123,8 @@ importers: specifier: ^8.12.0 version: 8.12.0 postcss: - specifier: 8.4.43 - version: 8.4.43 + specifier: 8.4.45 + version: 8.4.45 react: specifier: 18.3.1 version: 18.3.1 @@ -164,14 +164,14 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} - '@ai-sdk/openai@0.0.54': - resolution: {integrity: sha512-0jqUSY9Lq0ie4AxnAucmiMhVBbs8ivvOW73sq3pCNA+LFeb2edOcnI0qmfGfHTn/VOjUCf2TvzQzHQx1Du3sYA==} + '@ai-sdk/openai@0.0.56': + resolution: {integrity: sha512-+S98OBeLMwDqGlPr2FEo/61wNxlwVdB1x7lZg5bfZArht1psVDhT5P5jrDMeQUXlRR7T2H29VyUjbSr5yarmhQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/provider-utils@1.0.17': - resolution: {integrity: sha512-2VyeTH5DQ6AxqvwdyytKIeiZyYTyJffpufWjE67zM2sXMIHgYl7fivo8m5wVl6Cbf1dFPSGKq//C9s+lz+NHrQ==} + '@ai-sdk/provider-utils@1.0.18': + resolution: {integrity: sha512-9u/XE/dB1gsIGcxiC5JfGOLzUz+EKRXt66T8KYWwDg4x8d02P+fI/EPOgkf+T4oLBrcQgvs4GPXPKoXGPJxBbg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -179,12 +179,12 @@ packages: zod: optional: true - '@ai-sdk/provider@0.0.22': - resolution: {integrity: sha512-smZ1/2jL/JSKnbhC6ama/PxI2D/psj+YAe0c0qpd5ComQCNFltg72VFf0rpUSFMmFuj1pCCNoBOCrvyl8HTZHQ==} + '@ai-sdk/provider@0.0.23': + resolution: {integrity: sha512-oAc49O5+xypVrKM7EUU5P/Y4DUL4JZUWVxhejoAVOTOl3WZUEWsMbP3QZR+TrimQIsS0WR/n9UuF6U0jPdp0tQ==} engines: {node: '>=18'} - '@ai-sdk/react@0.0.53': - resolution: {integrity: sha512-sIsmTFoR/QHvUUkltmHwP4bPjwy2vko6j/Nj8ayxLhEHs04Ug+dwXQyfA7MwgimEE3BcDQpWL8ikVj0m3ZILWQ==} + '@ai-sdk/react@0.0.55': + resolution: {integrity: sha512-9fUUEEEoH01M6ZhvyZ/2v0DI6tiYnSldBg6RaKoy+qx2tSeKvOpFNZhT/iOvQ7oqAyyp0Ocg5Rj7L/jcLXSMxw==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -195,8 +195,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.43': - resolution: {integrity: sha512-7PlPLaeMAu97oOY2gjywvKZMYHF+GDfUxYNcuJ4AZ3/MRBatzs/U2r4ClT1iH8uMOcMg02RX6UKzP5SgnUBjVw==} + '@ai-sdk/solid@0.0.44': + resolution: {integrity: sha512-3kMhxalepc78jWr2Qg1BAHbY04JKYxp8wRu3TACrRUdokxzwD5sbZYtTb7vu9tw2wx78rfu0DH44CESFWpSfZg==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -204,8 +204,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.45': - resolution: {integrity: sha512-w5Sdl0ArFIM3Fp8BbH4TUvlrS84WP/jN/wC1+fghMOXd7ceVO3Yhs9r71wTqndhgkLC7LAEX9Ll7ZEPfW9WBDA==} + '@ai-sdk/svelte@0.0.46': + resolution: {integrity: sha512-cokqS91vQkpqiRgf8xKwOONFb/RwkIbRg9jYVRb+z5NR9OsWXKMEfoCAf8+VgURfVbp8nqA+ddRXvtgYCwqQjQ==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -213,8 +213,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.40': - resolution: {integrity: sha512-f0eonPUBO13pIO8jA9IGux7IKMeqpvWK22GBr3tOoSRnO5Wg5GEpXZU1V0Po+unpeZHyEPahrWbj5JfXcyWCqw==} + '@ai-sdk/ui-utils@0.0.41': + resolution: {integrity: sha512-I0trJKWxVG8hXeG0MvKqLG54fZjdeGjXvcVZocaSnWMBhl9lpTQxrqAR6ZsQMFDXs5DbvXoKtQs488qu2Bzaiw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -222,8 +222,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.45': - resolution: {integrity: sha512-bqeoWZqk88TQmfoPgnFUKkrvhOIcOcSH5LMPgzZ8XwDqz5tHHrMHzpPfHCj7XyYn4ROTFK/2kKdC/ta6Ko0fMw==} + '@ai-sdk/vue@0.0.46': + resolution: {integrity: sha512-H366ydskPbZP8uRs4sm3SAi97P3JVTRI5Q8xYTI6uTaY4UFBA6aOWdDxniYZNa67ebemfe11m7ksX4wHW6Wl8g==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -276,22 +276,22 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.637.0': - resolution: {integrity: sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA==} + '@aws-sdk/client-s3@3.645.0': + resolution: {integrity: sha512-RjT/mfNv4yr1uv/+aEXgSIxC5EB+yHPSU7hH0KZOZrvZEFASLl0i4FeoHzbMEOH5KdKGAi0uu3zRP3D1y45sKg==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.637.0': - resolution: {integrity: sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw==} + '@aws-sdk/client-sso-oidc@3.645.0': + resolution: {integrity: sha512-X9ULtdk3cO+1ysurEkJ1MSnu6U00qodXx+IVual+1jXX4RYY1WmQmfo7uDKf6FFkz7wW1DAqU+GJIBNQr0YH8A==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.637.0 + '@aws-sdk/client-sts': ^3.645.0 - '@aws-sdk/client-sso@3.637.0': - resolution: {integrity: sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw==} + '@aws-sdk/client-sso@3.645.0': + resolution: {integrity: sha512-2rc8TjnsNddOeKQ/pfNN7deNvGLXAeKeYtHtGDAiM2qfTKxd2sNcAsZ+JCDLyshuD4xLM5fpUyR0X8As9EAouQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.637.0': - resolution: {integrity: sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw==} + '@aws-sdk/client-sts@3.645.0': + resolution: {integrity: sha512-6azXYtvtnAsPf2ShN9vKynIYVcJOpo6IoVmoMAVgNaBJyllP+s/RORzranYZzckqfmrudSxtct4rVapjLWuAMg==} engines: {node: '>=16.0.0'} '@aws-sdk/core@3.635.0': @@ -306,22 +306,22 @@ packages: resolution: {integrity: sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.637.0': - resolution: {integrity: sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw==} + '@aws-sdk/credential-provider-ini@3.645.0': + resolution: {integrity: sha512-LlZW0qwUwNlTaAIDCNpLbPsyXvS42pRIwF92fgtCQedmdnpN3XRUC6hcwSYI7Xru3GGKp3RnceOvsdOaRJORsw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.637.0 + '@aws-sdk/client-sts': ^3.645.0 - '@aws-sdk/credential-provider-node@3.637.0': - resolution: {integrity: sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA==} + '@aws-sdk/credential-provider-node@3.645.0': + resolution: {integrity: sha512-eGFFuNvLeXjCJf5OCIuSEflxUowmK+bCS+lK4M8ofsYOEGAivdx7C0UPxNjHpvM8wKd8vpMl5phTeS9BWX5jMQ==} engines: {node: '>=16.0.0'} '@aws-sdk/credential-provider-process@3.620.1': resolution: {integrity: sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.637.0': - resolution: {integrity: sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA==} + '@aws-sdk/credential-provider-sso@3.645.0': + resolution: {integrity: sha512-d6XuChAl5NCsCrUexc6AFb4efPmb9+66iwPylKG+iMTMYgO1ackfy1Q2/f35jdn0jolkPkzKsVyfzsEVoID6ew==} engines: {node: '>=16.0.0'} '@aws-sdk/credential-provider-web-identity@3.621.0': @@ -366,16 +366,16 @@ packages: resolution: {integrity: sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.637.0': - resolution: {integrity: sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug==} + '@aws-sdk/middleware-user-agent@3.645.0': + resolution: {integrity: sha512-NpTAtqWK+49lRuxfz7st9for80r4NriCMK0RfdJSoPFVntjsSQiQ7+2nW2XL05uVY633e9DvCAw8YatX3zd1mw==} engines: {node: '>=16.0.0'} '@aws-sdk/region-config-resolver@3.614.0': resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==} engines: {node: '>=16.0.0'} - '@aws-sdk/s3-request-presigner@3.637.0': - resolution: {integrity: sha512-URRiEDZEICyfAXmXcXREQCsvZrapITAymvg46p1Xjnuv7PTnUB0SF18B2omPL0E5d/X+T3O9NKdtot+BqJbIWw==} + '@aws-sdk/s3-request-presigner@3.645.0': + resolution: {integrity: sha512-YyEwg2ryp8ECDl/W9oJC4FqqtZdkIbaVXveqwv93Aq2hgui0XrTFbhZNXJUvfU/mBVjx3Kud/FQTB3Bx0qwqPQ==} engines: {node: '>=16.0.0'} '@aws-sdk/signature-v4-multi-region@3.635.0': @@ -396,8 +396,8 @@ packages: resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.637.0': - resolution: {integrity: sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw==} + '@aws-sdk/util-endpoints@3.645.0': + resolution: {integrity: sha512-Oe+xaU4ic4PB1k3pb5VTC1/MWES13IlgpaQw01bVHGfwP6Yv6zZOxizRzca2Y3E+AyR+nKD7vXtHRY+w3bi4bg==} engines: {node: '>=16.0.0'} '@aws-sdk/util-format-url@3.609.0': @@ -851,65 +851,65 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/bundle-analyzer@14.2.7': - resolution: {integrity: sha512-Zz55BLjoNKiUjr8PJIMTXFQnbUEpk8qkXP5nmEcXvOorbruQOIdmkRa3sahlJZPWTjsZNpxwImhZf2yFMVMWeg==} + '@next/bundle-analyzer@14.2.8': + resolution: {integrity: sha512-1AVsLkZhCsLwY9u7WLw6TOdYbSiAqz2avpJXPJBfIU7zvYpGiHzZkAJLSdbf9o3DwyFVoxTuDrErj6NmgDSWVg==} - '@next/env@14.2.7': - resolution: {integrity: sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ==} + '@next/env@14.2.8': + resolution: {integrity: sha512-L44a+ynqkolyNBnYfF8VoCiSrjSZWgEHYKkKLGcs/a80qh7AkfVUD/MduVPgdsWZ31tgROR+yJRA0PZjSVBXWQ==} - '@next/eslint-plugin-next@14.2.7': - resolution: {integrity: sha512-+7xh142AdhZGjY9/L0iFo7mqRBMJHe+q+uOL+hto1Lfo9DeWCGcR6no4StlFbVSVcA6fQLKEX6y6qhMsSKbgNQ==} + '@next/eslint-plugin-next@14.2.8': + resolution: {integrity: sha512-ue5vcq9Fjk3asACRDrzYjcGMEN7pMMDQ5zUD+FenkqvlPCVUD1x7PxBNOLfPYDZOrk/Vnl4GHmjj2mZDqPW8TQ==} - '@next/swc-darwin-arm64@14.2.7': - resolution: {integrity: sha512-UhZGcOyI9LE/tZL3h9rs/2wMZaaJKwnpAyegUVDGZqwsla6hMfeSj9ssBWQS9yA4UXun3pPhrFLVnw5KXZs3vw==} + '@next/swc-darwin-arm64@14.2.8': + resolution: {integrity: sha512-1VrQlG8OzdyvvGZhGJFnaNE2P10Jjy/2FopnqbY0nSa/gr8If3iINxvOEW3cmVeoAYkmW0RsBazQecA2dBFOSw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.7': - resolution: {integrity: sha512-ys2cUgZYRc+CbyDeLAaAdZgS7N1Kpyy+wo0b/gAj+SeOeaj0Lw/q+G1hp+DuDiDAVyxLBCJXEY/AkhDmtihUTA==} + '@next/swc-darwin-x64@14.2.8': + resolution: {integrity: sha512-87t3I86rNRSOJB1gXIUzaQWWSWrkWPDyZGsR0Z7JAPtLeX3uUOW2fHxl7dNWD2BZvbvftctTQjgtfpp7nMtmWg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.7': - resolution: {integrity: sha512-2xoWtE13sUJ3qrC1lwE/HjbDPm+kBQYFkkiVECJWctRASAHQ+NwjMzgrfqqMYHfMxFb5Wws3w9PqzZJqKFdWcQ==} + '@next/swc-linux-arm64-gnu@14.2.8': + resolution: {integrity: sha512-ta2sfVzbOpTbgBrF9HM5m+U58dv6QPuwU4n5EX4LLyCJGKc433Z0D9h9gay/HSOjLEXJ2fJYrMP5JYYbHdxhtw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.7': - resolution: {integrity: sha512-+zJ1gJdl35BSAGpkCbfyiY6iRTaPrt3KTl4SF/B1NyELkqqnrNX6cp4IjjjxKpd64/7enI0kf6b9O1Uf3cL0pw==} + '@next/swc-linux-arm64-musl@14.2.8': + resolution: {integrity: sha512-+IoLTPK6Z5uIgDhgeWnQF5/o5GBN7+zyUNrs4Bes1W3g9++YELb8y0unFybS8s87ntAKMDl6jeQ+mD7oNwp/Ng==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.7': - resolution: {integrity: sha512-m6EBqrskeMUzykBrv0fDX/28lWIBGhMzOYaStp0ihkjzIYJiKUOzVYD1gULHc8XDf5EMSqoH/0/TRAgXqpQwmw==} + '@next/swc-linux-x64-gnu@14.2.8': + resolution: {integrity: sha512-pO+hVXC+mvzUOQJJRG4RX4wJsRJ5BkURSf6dD6EjUXAX4Ml9es1WsEfkaZ4lcpmFzFvY47IkDaffks/GdCn9ag==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.7': - resolution: {integrity: sha512-gUu0viOMvMlzFRz1r1eQ7Ql4OE+hPOmA7smfZAhn8vC4+0swMZaZxa9CSIozTYavi+bJNDZ3tgiSdMjmMzRJlQ==} + '@next/swc-linux-x64-musl@14.2.8': + resolution: {integrity: sha512-bCat9izctychCtf3uL1nqHq31N5e1VxvdyNcBQflkudPMLbxVnlrw45Vi87K+lt1CwrtVayHqzo4ie0Szcpwzg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.7': - resolution: {integrity: sha512-PGbONHIVIuzWlYmLvuFKcj+8jXnLbx4WrlESYlVnEzDsa3+Q2hI1YHoXaSmbq0k4ZwZ7J6sWNV4UZfx1OeOlbQ==} + '@next/swc-win32-arm64-msvc@14.2.8': + resolution: {integrity: sha512-gbxfUaSPV7EyUobpavida2Hwi62GhSJaSg7iBjmBWoxkxlmETOD7U4tWt763cGIsyE6jM7IoNavq0BXqwdW2QA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.7': - resolution: {integrity: sha512-BiSY5umlx9ed5RQDoHcdbuKTUkuFORDqzYKPHlLeS+STUWQKWziVOn3Ic41LuTBvqE0TRJPKpio9GSIblNR+0w==} + '@next/swc-win32-ia32-msvc@14.2.8': + resolution: {integrity: sha512-PUXzEzjTTlUh3b5VAn1nlpwvujTnuCMMwbiCnaTazoVlN1nA3kWjlmp42IfURA2N/nyrlVEw7pURa/o4Qxj1cw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.7': - resolution: {integrity: sha512-pxsI23gKWRt/SPHFkDEsP+w+Nd7gK37Hpv0ngc5HpWy2e7cKx9zR/+Q2ptAUqICNTecAaGWvmhway7pj/JLEWA==} + '@next/swc-win32-x64-msvc@14.2.8': + resolution: {integrity: sha512-EnPKv0ttq02E9/1KZ/8Dn7kuutv6hy1CKc0HlNcvzOQcm4/SQtvfws5gY0zrG9tuupd3HfC2L/zcTrnBhpjTuQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1585,8 +1585,8 @@ packages: peerDependencies: tailwindcss: '>=3.2.0' - '@tailwindcss/forms@0.5.8': - resolution: {integrity: sha512-DJs7B7NPD0JH7BVvdHWNviWmunlFhuEkz7FyFxE4japOWYMLl9b1D6+Z9mivJJPWr6AEbmlPqgiFRyLwFB1SgQ==} + '@tailwindcss/forms@0.5.9': + resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' @@ -1659,11 +1659,14 @@ packages: '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.5.2': - resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} '@types/pg@8.11.8': resolution: {integrity: sha512-IqpCf8/569txXN/HoP5i1LjXfKZWL76Yr2R77xgeIICUbAYHeoaEZFhYHo2uDftecLWrTJUq63JvQu8q3lnDyA==} @@ -1677,6 +1680,9 @@ packages: '@types/react@18.3.5': resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1700,6 +1706,17 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@7.2.0': + resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/parser@7.17.0': resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1738,6 +1755,16 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@7.2.0': + resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/types@7.17.0': resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1770,6 +1797,12 @@ packages: peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@7.2.0': + resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/visitor-keys@7.17.0': resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1887,8 +1920,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - ai@3.3.21: - resolution: {integrity: sha512-gUkYEpghc2/+/2ZO82GSf3R2nMXiC0ZZBvhubetVTK93RW1ts/wuuLig7SH3K3vPgj3us0XK67/9FC1XOFwupg==} + ai@3.3.27: + resolution: {integrity: sha512-ARKVzndpE4ujlXWU7I72Ei7nlEcUGC84HvbduOFZW1jdTG0EU/pgT6meRLYCuY+khKfmsI7VCJcgyXuZrvwN5g==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2478,8 +2511,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-next@14.2.7: - resolution: {integrity: sha512-ppmy+QdQ7qkuCHGDlPjWaoSbJvjGpWSBD4zEW8f1eWlxYXYpZK7QzBOer1EcHKT3uKhlY1JjUus9g7Kvv712rw==} + eslint-config-next@14.2.8: + resolution: {integrity: sha512-gRqxHkSuCrQro6xqXnmXphcq8rdiw7FI+nLXpWmIlp/AfUzHCgXNQE7mOK+oco+SRaJbhqCg/68uRln1qjkF+Q==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -2669,8 +2702,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.3.31: - resolution: {integrity: sha512-Xmxs08WBXnc2tNzNZbFSpquI33lvleJg4Y+hmZ+vFkn+laN9ZnR3gbZnNGKDtuz7c/x3u8dLg05OU3EhLobCsg==} + framer-motion@11.5.4: + resolution: {integrity: sha512-E+tb3/G6SO69POkdJT+3EpdMuhmtCh9EWuK4I1DnIC23L7tFPrl8vxP+LSovwaw6uUr73rUbpb4FgK011wbRJQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -3429,8 +3462,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.7: - resolution: {integrity: sha512-4Qy2aK0LwH4eQiSvQWyKuC7JXE13bIopEQesWE0c/P3uuNRnZCQanI0vsrMLmUQJLAto+A+/8+sve2hd+BQuOQ==} + next@14.2.8: + resolution: {integrity: sha512-EyEyJZ89r8C5FPlS/401AiF3O8jeMtHIE+bLom9MwcdWJJFBgRl+MR/2VgO0v5bI6tQORNY0a0DR5sjpFNrjbg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -3694,8 +3727,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.43: - resolution: {integrity: sha512-gJAQVYbh5R3gYm33FijzCZj7CHyQ3hWMgJMprLUlIYqCwTeZhBQ19wp0e9mA25BUbEvY5+EXuuaAjqQsrBxQBQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -4495,67 +4528,67 @@ snapshots: '@adobe/css-tools@4.4.0': {} - '@ai-sdk/openai@0.0.54(zod@3.23.8)': + '@ai-sdk/openai@0.0.56(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.22 - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/provider': 0.0.23 + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) zod: 3.23.8 - '@ai-sdk/provider-utils@1.0.17(zod@3.23.8)': + '@ai-sdk/provider-utils@1.0.18(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.22 + '@ai-sdk/provider': 0.0.23 eventsource-parser: 1.1.2 nanoid: 3.3.6 secure-json-parse: 2.7.0 optionalDependencies: zod: 3.23.8 - '@ai-sdk/provider@0.0.22': + '@ai-sdk/provider@0.0.23': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.53(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/react@0.0.55(react@18.3.1)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.43(solid-js@1.8.17)(zod@3.23.8)': + '@ai-sdk/solid@0.0.44(solid-js@1.8.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) optionalDependencies: solid-js: 1.8.17 transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.45(svelte@4.2.17)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.46(svelte@4.2.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) sswr: 2.1.0(svelte@4.2.17) optionalDependencies: svelte: 4.2.17 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.40(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.41(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.22 - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) + '@ai-sdk/provider': 0.0.23 + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.23.2(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.45(vue@3.4.27(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.46(vue@3.4.27(typescript@5.5.4))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) swrv: 1.0.4(vue@3.4.27(typescript@5.5.4)) optionalDependencies: vue: 3.4.27(typescript@5.5.4) @@ -4626,15 +4659,15 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 - '@aws-sdk/client-s3@3.637.0': + '@aws-sdk/client-s3@3.645.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.637.0(@aws-sdk/client-sts@3.637.0) - '@aws-sdk/client-sts': 3.637.0 + '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) + '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-bucket-endpoint': 3.620.0 '@aws-sdk/middleware-expect-continue': 3.620.0 '@aws-sdk/middleware-flexible-checksums': 3.620.0 @@ -4644,11 +4677,11 @@ snapshots: '@aws-sdk/middleware-recursion-detection': 3.620.0 '@aws-sdk/middleware-sdk-s3': 3.635.0 '@aws-sdk/middleware-ssec': 3.609.0 - '@aws-sdk/middleware-user-agent': 3.637.0 + '@aws-sdk/middleware-user-agent': 3.645.0 '@aws-sdk/region-config-resolver': 3.614.0 '@aws-sdk/signature-v4-multi-region': 3.635.0 '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.637.0 + '@aws-sdk/util-endpoints': 3.645.0 '@aws-sdk/util-user-agent-browser': 3.609.0 '@aws-sdk/util-user-agent-node': 3.614.0 '@aws-sdk/xml-builder': 3.609.0 @@ -4689,20 +4722,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)': + '@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.637.0 + '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-host-header': 3.620.0 '@aws-sdk/middleware-logger': 3.609.0 '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.637.0 + '@aws-sdk/middleware-user-agent': 3.645.0 '@aws-sdk/region-config-resolver': 3.614.0 '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.637.0 + '@aws-sdk/util-endpoints': 3.645.0 '@aws-sdk/util-user-agent-browser': 3.609.0 '@aws-sdk/util-user-agent-node': 3.614.0 '@smithy/config-resolver': 3.0.5 @@ -4734,7 +4767,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.637.0': + '@aws-sdk/client-sso@3.645.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -4742,10 +4775,10 @@ snapshots: '@aws-sdk/middleware-host-header': 3.620.0 '@aws-sdk/middleware-logger': 3.609.0 '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.637.0 + '@aws-sdk/middleware-user-agent': 3.645.0 '@aws-sdk/region-config-resolver': 3.614.0 '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.637.0 + '@aws-sdk/util-endpoints': 3.645.0 '@aws-sdk/util-user-agent-browser': 3.609.0 '@aws-sdk/util-user-agent-node': 3.614.0 '@smithy/config-resolver': 3.0.5 @@ -4777,20 +4810,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.637.0': + '@aws-sdk/client-sts@3.645.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.637.0(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-host-header': 3.620.0 '@aws-sdk/middleware-logger': 3.609.0 '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.637.0 + '@aws-sdk/middleware-user-agent': 3.645.0 '@aws-sdk/region-config-resolver': 3.614.0 '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.637.0 + '@aws-sdk/util-endpoints': 3.645.0 '@aws-sdk/util-user-agent-browser': 3.609.0 '@aws-sdk/util-user-agent-node': 3.614.0 '@smithy/config-resolver': 3.0.5 @@ -4854,14 +4887,14 @@ snapshots: '@smithy/util-stream': 3.1.3 tslib: 2.6.2 - '@aws-sdk/credential-provider-ini@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0)': + '@aws-sdk/credential-provider-ini@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': dependencies: - '@aws-sdk/client-sts': 3.637.0 + '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/credential-provider-env': 3.620.1 '@aws-sdk/credential-provider-http': 3.635.0 '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) '@aws-sdk/types': 3.609.0 '@smithy/credential-provider-imds': 3.2.0 '@smithy/property-provider': 3.1.3 @@ -4872,14 +4905,14 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0)': + '@aws-sdk/credential-provider-node@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': dependencies: '@aws-sdk/credential-provider-env': 3.620.1 '@aws-sdk/credential-provider-http': 3.635.0 - '@aws-sdk/credential-provider-ini': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-ini': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) '@aws-sdk/types': 3.609.0 '@smithy/credential-provider-imds': 3.2.0 '@smithy/property-provider': 3.1.3 @@ -4899,10 +4932,10 @@ snapshots: '@smithy/types': 3.3.0 tslib: 2.6.2 - '@aws-sdk/credential-provider-sso@3.637.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))': + '@aws-sdk/credential-provider-sso@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))': dependencies: - '@aws-sdk/client-sso': 3.637.0 - '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0)) + '@aws-sdk/client-sso': 3.645.0 + '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) '@aws-sdk/types': 3.609.0 '@smithy/property-provider': 3.1.3 '@smithy/shared-ini-file-loader': 3.1.4 @@ -4912,9 +4945,9 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.637.0)': + '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.645.0)': dependencies: - '@aws-sdk/client-sts': 3.637.0 + '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/types': 3.609.0 '@smithy/property-provider': 3.1.3 '@smithy/types': 3.3.0 @@ -4997,10 +5030,10 @@ snapshots: '@smithy/types': 3.3.0 tslib: 2.6.2 - '@aws-sdk/middleware-user-agent@3.637.0': + '@aws-sdk/middleware-user-agent@3.645.0': dependencies: '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.637.0 + '@aws-sdk/util-endpoints': 3.645.0 '@smithy/protocol-http': 4.1.0 '@smithy/types': 3.3.0 tslib: 2.6.2 @@ -5014,7 +5047,7 @@ snapshots: '@smithy/util-middleware': 3.0.3 tslib: 2.6.2 - '@aws-sdk/s3-request-presigner@3.637.0': + '@aws-sdk/s3-request-presigner@3.645.0': dependencies: '@aws-sdk/signature-v4-multi-region': 3.635.0 '@aws-sdk/types': 3.609.0 @@ -5034,9 +5067,9 @@ snapshots: '@smithy/types': 3.3.0 tslib: 2.6.2 - '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.637.0(@aws-sdk/client-sts@3.637.0))': + '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.637.0(@aws-sdk/client-sts@3.637.0) + '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) '@aws-sdk/types': 3.609.0 '@smithy/property-provider': 3.1.3 '@smithy/shared-ini-file-loader': 3.1.4 @@ -5052,7 +5085,7 @@ snapshots: dependencies: tslib: 2.6.2 - '@aws-sdk/util-endpoints@3.637.0': + '@aws-sdk/util-endpoints@3.645.0': dependencies: '@aws-sdk/types': 3.609.0 '@smithy/types': 3.3.0 @@ -5451,7 +5484,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -5464,14 +5497,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.5.2) + jest-config: 29.7.0(@types/node@22.5.4) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -5496,7 +5529,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -5514,7 +5547,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -5536,7 +5569,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -5606,7 +5639,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -5627,44 +5660,44 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/bundle-analyzer@14.2.7': + '@next/bundle-analyzer@14.2.8': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@14.2.7': {} + '@next/env@14.2.8': {} - '@next/eslint-plugin-next@14.2.7': + '@next/eslint-plugin-next@14.2.8': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.7': + '@next/swc-darwin-arm64@14.2.8': optional: true - '@next/swc-darwin-x64@14.2.7': + '@next/swc-darwin-x64@14.2.8': optional: true - '@next/swc-linux-arm64-gnu@14.2.7': + '@next/swc-linux-arm64-gnu@14.2.8': optional: true - '@next/swc-linux-arm64-musl@14.2.7': + '@next/swc-linux-arm64-musl@14.2.8': optional: true - '@next/swc-linux-x64-gnu@14.2.7': + '@next/swc-linux-x64-gnu@14.2.8': optional: true - '@next/swc-linux-x64-musl@14.2.7': + '@next/swc-linux-x64-musl@14.2.8': optional: true - '@next/swc-win32-arm64-msvc@14.2.7': + '@next/swc-win32-arm64-msvc@14.2.8': optional: true - '@next/swc-win32-ia32-msvc@14.2.7': + '@next/swc-win32-ia32-msvc@14.2.8': optional: true - '@next/swc-win32-x64-msvc@14.2.7': + '@next/swc-win32-x64-msvc@14.2.8': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6425,7 +6458,7 @@ snapshots: dependencies: tailwindcss: 3.4.10 - '@tailwindcss/forms@0.5.8(tailwindcss@3.4.10)': + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.10)': dependencies: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.10 @@ -6494,7 +6527,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/istanbul-lib-coverage@2.0.6': {} @@ -6513,19 +6546,21 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 + '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} - '@types/node@22.5.2': + '@types/node@22.5.4': dependencies: undici-types: 6.19.6 '@types/pg@8.11.8': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 pg-protocol: 1.6.1 pg-types: 4.0.2 @@ -6540,6 +6575,8 @@ snapshots: '@types/prop-types': 15.7.12 csstype: 3.1.3 + '@types/semver@7.5.8': {} + '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -6568,6 +6605,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 7.17.0 @@ -6616,6 +6673,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@7.17.0': {} '@typescript-eslint/types@7.2.0': {} @@ -6661,6 +6730,20 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) + eslint: 8.57.0 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/visitor-keys@7.17.0': dependencies: '@typescript-eslint/types': 7.17.0 @@ -6685,11 +6768,11 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.3.1(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 '@vercel/blob@0.23.4': @@ -6704,9 +6787,9 @@ snapshots: dependencies: '@upstash/redis': 1.31.3 - '@vercel/speed-insights@1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': + '@vercel/speed-insights@1.0.12(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': optionalDependencies: - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 svelte: 4.2.17 vue: 3.4.27(typescript@5.5.4) @@ -6733,7 +6816,7 @@ snapshots: '@vue/shared': 3.4.27 estree-walker: 2.0.2 magic-string: 0.30.10 - postcss: 8.4.43 + postcss: 8.4.45 source-map-js: 1.2.0 '@vue/compiler-ssr@3.4.27': @@ -6785,15 +6868,15 @@ snapshots: transitivePeerDependencies: - supports-color - ai@3.3.21(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8): + ai@3.3.27(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8): dependencies: - '@ai-sdk/provider': 0.0.22 - '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8) - '@ai-sdk/react': 0.0.53(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.43(solid-js@1.8.17)(zod@3.23.8) - '@ai-sdk/svelte': 0.0.45(svelte@4.2.17)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8) - '@ai-sdk/vue': 0.0.45(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider': 0.0.23 + '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/react': 0.0.55(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.44(solid-js@1.8.17)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.46(svelte@4.2.17)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) + '@ai-sdk/vue': 0.0.46(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6942,14 +7025,14 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.4.43): + autoprefixer@10.4.20(postcss@8.4.45): dependencies: browserslist: 4.23.3 caniuse-lite: 1.0.30001651 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -7196,13 +7279,13 @@ snapshots: cookie@0.6.0: {} - create-jest@29.7.0(@types/node@22.5.2): + create-jest@29.7.0(@types/node@22.5.4): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.5.2) + jest-config: 29.7.0(@types/node@22.5.4) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -7467,10 +7550,11 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@14.2.7(eslint@8.57.0)(typescript@5.5.4): + eslint-config-next@14.2.8(eslint@8.57.0)(typescript@5.5.4): dependencies: - '@next/eslint-plugin-next': 14.2.7 + '@next/eslint-plugin-next': 14.2.8 '@rushstack/eslint-patch': 1.10.3 + '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -7775,7 +7859,7 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.3.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: tslib: 2.6.2 optionalDependencies: @@ -8160,7 +8244,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -8180,16 +8264,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.5.2): + jest-cli@29.7.0(@types/node@22.5.4): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.2) + create-jest: 29.7.0(@types/node@22.5.4) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.5.2) + jest-config: 29.7.0(@types/node@22.5.4) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8199,7 +8283,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.5.2): + jest-config@29.7.0(@types/node@22.5.4): dependencies: '@babel/core': 7.24.5 '@jest/test-sequencer': 29.7.0 @@ -8224,7 +8308,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8254,7 +8338,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -8268,7 +8352,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8278,7 +8362,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.5.2 + '@types/node': 22.5.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8317,7 +8401,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -8352,7 +8436,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -8380,7 +8464,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 @@ -8426,7 +8510,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8445,7 +8529,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.2 + '@types/node': 22.5.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -8454,17 +8538,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.5.2): + jest@29.7.0(@types/node@22.5.4): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.5.2) + jest-cli: 29.7.0(@types/node@22.5.4) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -8674,10 +8758,10 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.19(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.32.0 - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -8685,9 +8769,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.7 + '@next/env': 14.2.8 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001651 @@ -8697,15 +8781,15 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.7 - '@next/swc-darwin-x64': 14.2.7 - '@next/swc-linux-arm64-gnu': 14.2.7 - '@next/swc-linux-arm64-musl': 14.2.7 - '@next/swc-linux-x64-gnu': 14.2.7 - '@next/swc-linux-x64-musl': 14.2.7 - '@next/swc-win32-arm64-msvc': 14.2.7 - '@next/swc-win32-ia32-msvc': 14.2.7 - '@next/swc-win32-x64-msvc': 14.2.7 + '@next/swc-darwin-arm64': 14.2.8 + '@next/swc-darwin-x64': 14.2.8 + '@next/swc-linux-arm64-gnu': 14.2.8 + '@next/swc-linux-arm64-musl': 14.2.8 + '@next/swc-linux-x64-gnu': 14.2.8 + '@next/swc-linux-x64-musl': 14.2.8 + '@next/swc-win32-arm64-msvc': 14.2.8 + '@next/swc-win32-ia32-msvc': 14.2.8 + '@next/swc-win32-x64-msvc': 14.2.8 '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' @@ -8911,28 +8995,28 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.43): + postcss-import@15.1.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.43): + postcss-js@4.0.1(postcss@8.4.45): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - postcss-load-config@4.0.2(postcss@8.4.43): + postcss-load-config@4.0.2(postcss@8.4.45): dependencies: lilconfig: 3.1.1 yaml: 2.4.2 optionalDependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-nested@6.0.1(postcss@8.4.43): + postcss-nested@6.0.1(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.0.16 postcss-selector-parser@6.0.16: @@ -8948,7 +9032,7 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.43: + postcss@8.4.45: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -9456,11 +9540,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.43 - postcss-import: 15.1.0(postcss@8.4.43) - postcss-js: 4.0.1(postcss@8.4.43) - postcss-load-config: 4.0.2(postcss@8.4.43) - postcss-nested: 6.0.1(postcss@8.4.43) + postcss: 8.4.45 + postcss-import: 15.1.0(postcss@8.4.45) + postcss-js: 4.0.1(postcss@8.4.45) + postcss-load-config: 4.0.2(postcss@8.4.45) + postcss-nested: 6.0.1(postcss@8.4.45) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 From 236101d34e087fa5fab6a9ef1d2e9f39895f9483 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Thu, 5 Sep 2024 20:31:23 -0500 Subject: [PATCH 16/26] Wrap page titles in

tags --- src/photo/PhotoDetailPage.tsx | 1 + src/photo/PhotoHeader.tsx | 25 +++++++++++++++---------- src/photo/PhotoLarge.tsx | 18 ++++++++++++------ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/photo/PhotoDetailPage.tsx b/src/photo/PhotoDetailPage.tsx index ecfd14d7..a23f0505 100644 --- a/src/photo/PhotoDetailPage.tsx +++ b/src/photo/PhotoDetailPage.tsx @@ -102,6 +102,7 @@ export default function PhotoDetailPage({ priority prefetchRelatedLinks showTitle={Boolean(customHeader)} + showTitleAsH1 showCamera={!camera} showSimulation={!simulation} shouldShare={shouldShare} diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index a0e33a56..d798eedf 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -77,6 +77,18 @@ export default function PhotoHeader({ : <>{end}
– {start}} ; + const renderContentA = () => entity ?? ( + selectedPhoto !== undefined && + + { + selectedPhoto.title || + formatDate(selectedPhoto.takenAt, 'tiny') + } + ); + return ( - {entity ?? (selectedPhoto !== undefined && - - { - selectedPhoto.title || - formatDate(selectedPhoto.takenAt, 'tiny') - } - )} + {headerType === 'photo-detail-with-entity' + ? renderContentA() + :

{renderContentA()}

}

{/* Content B: Filter Set Meta or Photo Pagination */}
+ ; + return (
- {hasTitle && - } + {hasTitle && (showTitleAsH1 + ?

{renderPhotoLink()}

+ : renderPhotoLink())}
Date: Sat, 7 Sep 2024 11:45:24 -0500 Subject: [PATCH 17/26] Make photo querying more resilient --- src/components/cmdk/CommandKClient.tsx | 48 +++++++++++++++----------- src/photo/PhotoHeader.tsx | 7 ++-- src/photo/actions.ts | 11 +++--- src/photo/index.ts | 16 +++++++-- 4 files changed, 49 insertions(+), 33 deletions(-) diff --git a/src/components/cmdk/CommandKClient.tsx b/src/components/cmdk/CommandKClient.tsx index 4e1e21c2..4f409c1f 100644 --- a/src/components/cmdk/CommandKClient.tsx +++ b/src/components/cmdk/CommandKClient.tsx @@ -31,7 +31,7 @@ import { useTheme } from 'next-themes'; import { BiDesktop, BiMoon, BiSun } from 'react-icons/bi'; import { IoInvertModeSharp } from 'react-icons/io5'; import { useAppState } from '@/state/AppState'; -import { queryPhotosByTitleAction } from '@/photo/actions'; +import { searchPhotosAction } from '@/photo/actions'; import { RiToolsFill } from 'react-icons/ri'; import { BiLockAlt, BiSolidUser } from 'react-icons/bi'; import { HiDocumentText } from 'react-icons/hi'; @@ -151,27 +151,33 @@ export default function CommandKClient({ useEffect(() => { if (queryDebounced.length >= MINIMUM_QUERY_LENGTH && !isPending) { setIsLoading(true); - queryPhotosByTitleAction(queryDebounced).then(photos => { - if (isOpenRef.current) { - setQueriedSections(photos.length > 0 - ? [{ - heading: 'Photos', - accessory: , - items: photos.map(photo => ({ - label: titleForPhoto(photo), - keywords: getKeywordsForPhoto(photo), - annotation: , - accessory: , - path: pathForPhoto({ photo }), - })), - }] - : []); - } else { - // Ignore stale requests that come in after dialog is closed + searchPhotosAction(queryDebounced) + .then(photos => { + if (isOpenRef.current) { + setQueriedSections(photos.length > 0 + ? [{ + heading: 'Photos', + accessory: , + items: photos.map(photo => ({ + label: titleForPhoto(photo), + keywords: getKeywordsForPhoto(photo), + annotation: , + accessory: , + path: pathForPhoto({ photo }), + })), + }] + : []); + } else { + // Ignore stale requests that come in after dialog is closed + setQueriedSections([]); + } + setIsLoading(false); + }) + .catch(e => { + console.error(e); setQueriedSections([]); - } - setIsLoading(false); - }); + setIsLoading(false); + }); } }, [queryDebounced, isPending]); diff --git a/src/photo/PhotoHeader.tsx b/src/photo/PhotoHeader.tsx index d798eedf..f66508df 100644 --- a/src/photo/PhotoHeader.tsx +++ b/src/photo/PhotoHeader.tsx @@ -6,6 +6,7 @@ import { PhotoDateRange, PhotoSetAttributes, dateRangeForPhotos, + titleForPhoto, } from '.'; import ShareButton from '@/components/ShareButton'; import AnimateItems from '@/components/AnimateItems'; @@ -13,7 +14,6 @@ import { ReactNode } from 'react'; import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid'; import PhotoPrevNext from './PhotoPrevNext'; import PhotoLink from './PhotoLink'; -import { formatDate } from '@/utility/date'; import ResponsiveText from '@/components/primitives/ResponsiveText'; import { useAppState } from '@/state/AppState'; @@ -83,10 +83,7 @@ export default function PhotoHeader({ photo={selectedPhoto} className="uppercase font-bold text-ellipsis truncate" > - { - selectedPhoto.title || - formatDate(selectedPhoto.takenAt, 'tiny') - } + {titleForPhoto(selectedPhoto, true)} ); return ( diff --git a/src/photo/actions.ts b/src/photo/actions.ts index 734208c0..3d3244a6 100644 --- a/src/photo/actions.ts +++ b/src/photo/actions.ts @@ -35,7 +35,7 @@ import { } from '@/site/paths'; import { blurImageFromUrl, extractImageDataFromBlobPath } from './server'; import { TAG_FAVS, isTagFavs } from '@/tag'; -import { convertPhotoToPhotoDbInsert } from '.'; +import { convertPhotoToPhotoDbInsert, Photo } from '.'; import { runAuthenticatedAdminServerAction } from '@/auth'; import { AI_IMAGE_QUERIES, AiImageQuery } from './ai'; import { streamOpenAiImageQuery } from '@/services/openai'; @@ -412,6 +412,9 @@ export const getPhotosCachedAction = async (options: GetPhotosOptions) => // Public actions -export const queryPhotosByTitleAction = async (query: string) => - (await getPhotos({ query, limit: 10 })) - .filter(({ title }) => Boolean(title)); +export const searchPhotosAction = async (query: string) => + getPhotos({ query, limit: 10 }) + .catch(e => { + console.error('Could not query photos', e); + return [] as Photo[]; + }); diff --git a/src/photo/index.ts b/src/photo/index.ts index bf3feab3..e3890a20 100644 --- a/src/photo/index.ts +++ b/src/photo/index.ts @@ -5,7 +5,7 @@ import { getNextImageUrlForRequest } from '@/services/next-image'; import { FilmSimulation } from '@/simulation'; import { HIGH_DENSITY_GRID, SHOW_EXIF_DATA } from '@/site/config'; import { ABSOLUTE_PATH_FOR_HOME_IMAGE } from '@/site/paths'; -import { formatDateFromPostgresString } from '@/utility/date'; +import { formatDate, formatDateFromPostgresString } from '@/utility/date'; import { formatAperture, formatIso, @@ -198,8 +198,18 @@ const PHOTO_ID_FORWARDING_TABLE: Record = JSON.parse( export const translatePhotoId = (id: string) => PHOTO_ID_FORWARDING_TABLE[id] || id; -export const titleForPhoto = (photo: Photo) => - photo.title || 'Untitled'; +export const titleForPhoto = ( + photo: Photo, + preferDateOverUntitled?: boolean, +) => { + if (photo.title) { + return photo.title; + } else if (preferDateOverUntitled && (photo.takenAt || photo.createdAt)) { + return formatDate(photo.takenAt || photo.createdAt, 'tiny'); + } else { + return 'Untitled'; + } +}; export const altTextForPhoto = (photo: Photo) => photo.semanticDescription || titleForPhoto(photo); From fe9371427a3761c7c8c6849730ae58cedf454817 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 7 Sep 2024 11:59:46 -0500 Subject: [PATCH 18/26] Revert to 14.2.7 to fix photo searching --- package.json | 2 +- pnpm-lock.yaml | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 4c53413f..2c61bdf7 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "nanoid": "^5.0.7", - "next": "^14.2.8", + "next": "^14.2.7", "next-auth": "5.0.0-beta.19", "next-themes": "^0.3.0", "pg": "^8.12.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b05f2c84..431a6211 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,7 +111,7 @@ importers: specifier: ^5.0.7 version: 5.0.7 next: - specifier: ^14.2.8 + specifier: ^14.2.7 version: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.19 @@ -2160,9 +2160,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} - caniuse-lite@1.0.30001651: resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} @@ -7122,7 +7119,7 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001620 + caniuse-lite: 1.0.30001651 electron-to-chromium: 1.4.775 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) @@ -7171,8 +7168,6 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001620: {} - caniuse-lite@1.0.30001651: {} chalk@2.4.2: From 1f8f3cf2fe9cc1cd27d11893f5735f2f3a947786 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 7 Sep 2024 12:05:44 -0500 Subject: [PATCH 19/26] Force next downgrade --- package.json | 6 +- pnpm-lock.yaml | 220 +++++++++++++++---------------------------------- 2 files changed, 71 insertions(+), 155 deletions(-) diff --git a/package.json b/package.json index 2c61bdf7..0e476403 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "@ai-sdk/openai": "^0.0.56", "@aws-sdk/client-s3": "3.645.0", "@aws-sdk/s3-request-presigner": "3.645.0", - "@next/bundle-analyzer": "14.2.8", + "@next/bundle-analyzer": "14.2.7", "@radix-ui/react-dropdown-menu": "^2.1.1", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.9", @@ -37,13 +37,13 @@ "cmdk": "^1.0.0", "date-fns": "^3.6.0", "eslint": "8.57.0", - "eslint-config-next": "14.2.8", + "eslint-config-next": "14.2.7", "exifr": "^7.1.3", "framer-motion": "^11.5.4", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "nanoid": "^5.0.7", - "next": "^14.2.7", + "next": "14.2.7", "next-auth": "5.0.0-beta.19", "next-themes": "^0.3.0", "pg": "^8.12.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 431a6211..78d168d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 3.645.0 version: 3.645.0 '@next/bundle-analyzer': - specifier: 14.2.8 - version: 14.2.8 + specifier: 14.2.7 + version: 14.2.7 '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -61,7 +61,7 @@ importers: version: 2.0.2 '@vercel/analytics': specifier: ^1.3.1 - version: 1.3.1(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/blob': specifier: ^0.23.4 version: 0.23.4 @@ -70,7 +70,7 @@ importers: version: 2.0.0 '@vercel/speed-insights': specifier: ^1.0.12 - version: 1.0.12(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) + version: 1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) ai: specifier: ^3.3.27 version: 3.3.27(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) @@ -93,8 +93,8 @@ importers: specifier: 8.57.0 version: 8.57.0 eslint-config-next: - specifier: 14.2.8 - version: 14.2.8(eslint@8.57.0)(typescript@5.5.4) + specifier: 14.2.7 + version: 14.2.7(eslint@8.57.0)(typescript@5.5.4) exifr: specifier: ^7.1.3 version: 7.1.3 @@ -111,11 +111,11 @@ importers: specifier: ^5.0.7 version: 5.0.7 next: - specifier: ^14.2.7 - version: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 14.2.7 + version: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.19 - version: 5.0.0-beta.19(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -851,65 +851,65 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/bundle-analyzer@14.2.8': - resolution: {integrity: sha512-1AVsLkZhCsLwY9u7WLw6TOdYbSiAqz2avpJXPJBfIU7zvYpGiHzZkAJLSdbf9o3DwyFVoxTuDrErj6NmgDSWVg==} + '@next/bundle-analyzer@14.2.7': + resolution: {integrity: sha512-Zz55BLjoNKiUjr8PJIMTXFQnbUEpk8qkXP5nmEcXvOorbruQOIdmkRa3sahlJZPWTjsZNpxwImhZf2yFMVMWeg==} - '@next/env@14.2.8': - resolution: {integrity: sha512-L44a+ynqkolyNBnYfF8VoCiSrjSZWgEHYKkKLGcs/a80qh7AkfVUD/MduVPgdsWZ31tgROR+yJRA0PZjSVBXWQ==} + '@next/env@14.2.7': + resolution: {integrity: sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ==} - '@next/eslint-plugin-next@14.2.8': - resolution: {integrity: sha512-ue5vcq9Fjk3asACRDrzYjcGMEN7pMMDQ5zUD+FenkqvlPCVUD1x7PxBNOLfPYDZOrk/Vnl4GHmjj2mZDqPW8TQ==} + '@next/eslint-plugin-next@14.2.7': + resolution: {integrity: sha512-+7xh142AdhZGjY9/L0iFo7mqRBMJHe+q+uOL+hto1Lfo9DeWCGcR6no4StlFbVSVcA6fQLKEX6y6qhMsSKbgNQ==} - '@next/swc-darwin-arm64@14.2.8': - resolution: {integrity: sha512-1VrQlG8OzdyvvGZhGJFnaNE2P10Jjy/2FopnqbY0nSa/gr8If3iINxvOEW3cmVeoAYkmW0RsBazQecA2dBFOSw==} + '@next/swc-darwin-arm64@14.2.7': + resolution: {integrity: sha512-UhZGcOyI9LE/tZL3h9rs/2wMZaaJKwnpAyegUVDGZqwsla6hMfeSj9ssBWQS9yA4UXun3pPhrFLVnw5KXZs3vw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.8': - resolution: {integrity: sha512-87t3I86rNRSOJB1gXIUzaQWWSWrkWPDyZGsR0Z7JAPtLeX3uUOW2fHxl7dNWD2BZvbvftctTQjgtfpp7nMtmWg==} + '@next/swc-darwin-x64@14.2.7': + resolution: {integrity: sha512-ys2cUgZYRc+CbyDeLAaAdZgS7N1Kpyy+wo0b/gAj+SeOeaj0Lw/q+G1hp+DuDiDAVyxLBCJXEY/AkhDmtihUTA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.8': - resolution: {integrity: sha512-ta2sfVzbOpTbgBrF9HM5m+U58dv6QPuwU4n5EX4LLyCJGKc433Z0D9h9gay/HSOjLEXJ2fJYrMP5JYYbHdxhtw==} + '@next/swc-linux-arm64-gnu@14.2.7': + resolution: {integrity: sha512-2xoWtE13sUJ3qrC1lwE/HjbDPm+kBQYFkkiVECJWctRASAHQ+NwjMzgrfqqMYHfMxFb5Wws3w9PqzZJqKFdWcQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.8': - resolution: {integrity: sha512-+IoLTPK6Z5uIgDhgeWnQF5/o5GBN7+zyUNrs4Bes1W3g9++YELb8y0unFybS8s87ntAKMDl6jeQ+mD7oNwp/Ng==} + '@next/swc-linux-arm64-musl@14.2.7': + resolution: {integrity: sha512-+zJ1gJdl35BSAGpkCbfyiY6iRTaPrt3KTl4SF/B1NyELkqqnrNX6cp4IjjjxKpd64/7enI0kf6b9O1Uf3cL0pw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.8': - resolution: {integrity: sha512-pO+hVXC+mvzUOQJJRG4RX4wJsRJ5BkURSf6dD6EjUXAX4Ml9es1WsEfkaZ4lcpmFzFvY47IkDaffks/GdCn9ag==} + '@next/swc-linux-x64-gnu@14.2.7': + resolution: {integrity: sha512-m6EBqrskeMUzykBrv0fDX/28lWIBGhMzOYaStp0ihkjzIYJiKUOzVYD1gULHc8XDf5EMSqoH/0/TRAgXqpQwmw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.8': - resolution: {integrity: sha512-bCat9izctychCtf3uL1nqHq31N5e1VxvdyNcBQflkudPMLbxVnlrw45Vi87K+lt1CwrtVayHqzo4ie0Szcpwzg==} + '@next/swc-linux-x64-musl@14.2.7': + resolution: {integrity: sha512-gUu0viOMvMlzFRz1r1eQ7Ql4OE+hPOmA7smfZAhn8vC4+0swMZaZxa9CSIozTYavi+bJNDZ3tgiSdMjmMzRJlQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.8': - resolution: {integrity: sha512-gbxfUaSPV7EyUobpavida2Hwi62GhSJaSg7iBjmBWoxkxlmETOD7U4tWt763cGIsyE6jM7IoNavq0BXqwdW2QA==} + '@next/swc-win32-arm64-msvc@14.2.7': + resolution: {integrity: sha512-PGbONHIVIuzWlYmLvuFKcj+8jXnLbx4WrlESYlVnEzDsa3+Q2hI1YHoXaSmbq0k4ZwZ7J6sWNV4UZfx1OeOlbQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.8': - resolution: {integrity: sha512-PUXzEzjTTlUh3b5VAn1nlpwvujTnuCMMwbiCnaTazoVlN1nA3kWjlmp42IfURA2N/nyrlVEw7pURa/o4Qxj1cw==} + '@next/swc-win32-ia32-msvc@14.2.7': + resolution: {integrity: sha512-BiSY5umlx9ed5RQDoHcdbuKTUkuFORDqzYKPHlLeS+STUWQKWziVOn3Ic41LuTBvqE0TRJPKpio9GSIblNR+0w==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.8': - resolution: {integrity: sha512-EnPKv0ttq02E9/1KZ/8Dn7kuutv6hy1CKc0HlNcvzOQcm4/SQtvfws5gY0zrG9tuupd3HfC2L/zcTrnBhpjTuQ==} + '@next/swc-win32-x64-msvc@14.2.7': + resolution: {integrity: sha512-pxsI23gKWRt/SPHFkDEsP+w+Nd7gK37Hpv0ngc5HpWy2e7cKx9zR/+Q2ptAUqICNTecAaGWvmhway7pj/JLEWA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1659,9 +1659,6 @@ packages: '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -1680,9 +1677,6 @@ packages: '@types/react@18.3.5': resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1706,17 +1700,6 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@7.2.0': - resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/parser@7.17.0': resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1755,16 +1738,6 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@7.2.0': - resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/types@7.17.0': resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1797,12 +1770,6 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.2.0': - resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.17.0': resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -2508,8 +2475,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-next@14.2.8: - resolution: {integrity: sha512-gRqxHkSuCrQro6xqXnmXphcq8rdiw7FI+nLXpWmIlp/AfUzHCgXNQE7mOK+oco+SRaJbhqCg/68uRln1qjkF+Q==} + eslint-config-next@14.2.7: + resolution: {integrity: sha512-ppmy+QdQ7qkuCHGDlPjWaoSbJvjGpWSBD4zEW8f1eWlxYXYpZK7QzBOer1EcHKT3uKhlY1JjUus9g7Kvv712rw==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -3459,8 +3426,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.8: - resolution: {integrity: sha512-EyEyJZ89r8C5FPlS/401AiF3O8jeMtHIE+bLom9MwcdWJJFBgRl+MR/2VgO0v5bI6tQORNY0a0DR5sjpFNrjbg==} + next@14.2.7: + resolution: {integrity: sha512-4Qy2aK0LwH4eQiSvQWyKuC7JXE13bIopEQesWE0c/P3uuNRnZCQanI0vsrMLmUQJLAto+A+/8+sve2hd+BQuOQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -5657,44 +5624,44 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/bundle-analyzer@14.2.8': + '@next/bundle-analyzer@14.2.7': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@14.2.8': {} + '@next/env@14.2.7': {} - '@next/eslint-plugin-next@14.2.8': + '@next/eslint-plugin-next@14.2.7': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.8': + '@next/swc-darwin-arm64@14.2.7': optional: true - '@next/swc-darwin-x64@14.2.8': + '@next/swc-darwin-x64@14.2.7': optional: true - '@next/swc-linux-arm64-gnu@14.2.8': + '@next/swc-linux-arm64-gnu@14.2.7': optional: true - '@next/swc-linux-arm64-musl@14.2.8': + '@next/swc-linux-arm64-musl@14.2.7': optional: true - '@next/swc-linux-x64-gnu@14.2.8': + '@next/swc-linux-x64-gnu@14.2.7': optional: true - '@next/swc-linux-x64-musl@14.2.8': + '@next/swc-linux-x64-musl@14.2.7': optional: true - '@next/swc-win32-arm64-msvc@14.2.8': + '@next/swc-win32-arm64-msvc@14.2.7': optional: true - '@next/swc-win32-ia32-msvc@14.2.8': + '@next/swc-win32-ia32-msvc@14.2.7': optional: true - '@next/swc-win32-x64-msvc@14.2.8': + '@next/swc-win32-x64-msvc@14.2.7': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6547,8 +6514,6 @@ snapshots: '@types/tough-cookie': 4.0.5 parse5: 7.1.2 - '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} '@types/node@22.5.4': @@ -6572,8 +6537,6 @@ snapshots: '@types/prop-types': 15.7.12 csstype: 3.1.3 - '@types/semver@7.5.8': {} - '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -6602,26 +6565,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 7.17.0 @@ -6670,18 +6613,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@7.17.0': {} '@typescript-eslint/types@7.2.0': {} @@ -6727,20 +6658,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) - eslint: 8.57.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/visitor-keys@7.17.0': dependencies: '@typescript-eslint/types': 7.17.0 @@ -6765,11 +6682,11 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.3.1(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 '@vercel/blob@0.23.4': @@ -6784,9 +6701,9 @@ snapshots: dependencies: '@upstash/redis': 1.31.3 - '@vercel/speed-insights@1.0.12(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': + '@vercel/speed-insights@1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': optionalDependencies: - next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 svelte: 4.2.17 vue: 3.4.27(typescript@5.5.4) @@ -7545,11 +7462,10 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@14.2.8(eslint@8.57.0)(typescript@5.5.4): + eslint-config-next@14.2.7(eslint@8.57.0)(typescript@5.5.4): dependencies: - '@next/eslint-plugin-next': 14.2.8 + '@next/eslint-plugin-next': 14.2.7 '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -8753,10 +8669,10 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.19(next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.32.0 - next: 14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -8764,9 +8680,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.8(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.8 + '@next/env': 14.2.7 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001651 @@ -8776,15 +8692,15 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.8 - '@next/swc-darwin-x64': 14.2.8 - '@next/swc-linux-arm64-gnu': 14.2.8 - '@next/swc-linux-arm64-musl': 14.2.8 - '@next/swc-linux-x64-gnu': 14.2.8 - '@next/swc-linux-x64-musl': 14.2.8 - '@next/swc-win32-arm64-msvc': 14.2.8 - '@next/swc-win32-ia32-msvc': 14.2.8 - '@next/swc-win32-x64-msvc': 14.2.8 + '@next/swc-darwin-arm64': 14.2.7 + '@next/swc-darwin-x64': 14.2.7 + '@next/swc-linux-arm64-gnu': 14.2.7 + '@next/swc-linux-arm64-musl': 14.2.7 + '@next/swc-linux-x64-gnu': 14.2.7 + '@next/swc-linux-x64-musl': 14.2.7 + '@next/swc-win32-arm64-msvc': 14.2.7 + '@next/swc-win32-ia32-msvc': 14.2.7 + '@next/swc-win32-x64-msvc': 14.2.7 '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' From 63d44c35fb8a3387f114f45b1ec5eeb8faa0e6e8 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 7 Sep 2024 16:07:17 -0500 Subject: [PATCH 20/26] Make template more resilient on initial installation --- src/admin/AdminBatchEditPanel.tsx | 2 +- src/photo/db/query.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/admin/AdminBatchEditPanel.tsx b/src/admin/AdminBatchEditPanel.tsx index 7014a5f4..9abb67da 100644 --- a/src/admin/AdminBatchEditPanel.tsx +++ b/src/admin/AdminBatchEditPanel.tsx @@ -2,7 +2,7 @@ import { getUniqueTagsCached } from '@/photo/cache'; import AdminBatchEditPanelClient from './AdminBatchEditPanelClient'; export default async function AdminBatchEditPanel() { - const uniqueTags = await getUniqueTagsCached(); + const uniqueTags = await getUniqueTagsCached().catch(() => []); return ( ); diff --git a/src/photo/db/query.ts b/src/photo/db/query.ts index 1f9cacaa..e97e633b 100644 --- a/src/photo/db/query.ts +++ b/src/photo/db/query.ts @@ -119,7 +119,10 @@ const safelyQueryPhotos = async ( throw e; } } else { - console.log(`sql get error: ${e.message} `); + if (e.message !== 'The server does not support SSL connections') { + // Avoid re-logging errors on initial installation + console.log(`sql get error: ${e.message} `); + } throw e; } } From 8750cc9b2fd0b4add2669f864e83849f3ee0e063 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 7 Sep 2024 23:58:47 -0500 Subject: [PATCH 21/26] Update deploy button url in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d9f56e91..e4fcdac8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ https://github.com/sambecker/exif-photo-blog/assets/169298/4253ea54-558a-4358-8834-89943cfbafb4 -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=Photo+Blog&demo-description=Store+photos+with+original+camera+data&demo-url=https%3A%2F%2Fphotos.sambecker.com&demo-image=https%3A%2F%2Fphotos.sambecker.com%2Ftemplate-image-tight&project-name=Photo+Blog&repository-name=exif-photo-blog&repository-url=https%3A%2F%2Fgithub.com%2Fsambecker%2Fexif-photo-blog&from=templates&skippable-integrations=1&teamCreateStatus=hidden&stores=%5B%7B%22type%22%3A%22postgres%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/sambecker-pro/clone?demo-description=Store%20photos%20with%20original%20camera%20data&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F39rys245Px3FVBGRJNYEON%2Fbf68d5c052bda9e9e5bec21878764bc3%2Fimage.png&demo-title=Photo%20Blog&demo-url=https%3A%2F%2Fphotos.sambecker.com&from=templates&project-name=Photo%20Blog&repository-name=exif-photo-blog&repository-url=https%3A%2F%2Fgithub.com%2Fsambecker%2Fexif-photo-blog&skippable-integrations=1&stores=%5B%7B%22type%22%3A%22postgres%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D&teamCreateStatus=hidden) Demo App - From 372f852a7c82735546e2cf268fb78f8c748168fe Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Thu, 12 Sep 2024 21:09:11 -0500 Subject: [PATCH 22/26] Remove --turbo from dev command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0e476403..5f70f0cb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "exif-photo-blog", "scripts": { - "dev": "next dev --turbo", + "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint", From 2cb246e3b1c45555edb3369be1539fbe362baf10 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 21 Sep 2024 13:06:09 -0500 Subject: [PATCH 23/26] Bump dependencies --- package.json | 40 +- pnpm-lock.yaml | 2260 +++++++++++++++++++++++------------------------- 2 files changed, 1115 insertions(+), 1185 deletions(-) diff --git a/package.json b/package.json index 5f70f0cb..77ff067b 100644 --- a/package.json +++ b/package.json @@ -9,54 +9,54 @@ "analyze": "ANALYZE=true next build" }, "dependencies": { - "@ai-sdk/openai": "^0.0.56", - "@aws-sdk/client-s3": "3.645.0", - "@aws-sdk/s3-request-presigner": "3.645.0", - "@next/bundle-analyzer": "14.2.7", + "@ai-sdk/openai": "^0.0.61", + "@aws-sdk/client-s3": "3.654.0", + "@aws-sdk/s3-request-presigner": "3.654.0", + "@next/bundle-analyzer": "14.2.13", "@radix-ui/react-dropdown-menu": "^2.1.1", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.9", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", - "@types/jest": "^29.5.12", - "@types/node": "^22.5.4", - "@types/pg": "^8.11.8", - "@types/react": "18.3.5", + "@types/jest": "^29.5.13", + "@types/node": "^22.5.5", + "@types/pg": "^8.11.10", + "@types/react": "18.3.8", "@types/react-dom": "18.3.0", "@typescript-eslint/eslint-plugin": "^7.17.0", "@typescript-eslint/parser": "^7.17.0", - "@upstash/ratelimit": "^2.0.2", + "@upstash/ratelimit": "^2.0.3", "@vercel/analytics": "^1.3.1", - "@vercel/blob": "^0.23.4", + "@vercel/blob": "^0.24.0", "@vercel/kv": "^2.0.0", "@vercel/speed-insights": "^1.0.12", - "ai": "^3.3.27", + "ai": "^3.4.0", "autoprefixer": "10.4.20", "camelcase-keys": "^9.1.3", "clsx": "^2.1.1", "cmdk": "^1.0.0", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "eslint": "8.57.0", - "eslint-config-next": "14.2.7", + "eslint-config-next": "14.2.13", "exifr": "^7.1.3", - "framer-motion": "^11.5.4", + "framer-motion": "^11.5.6", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "nanoid": "^5.0.7", - "next": "14.2.7", - "next-auth": "5.0.0-beta.19", + "next": "14.2.13", + "next-auth": "5.0.0-beta.21", "next-themes": "^0.3.0", - "pg": "^8.12.0", - "postcss": "8.4.45", + "pg": "^8.13.0", + "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", "react-icons": "^5.3.0", "sharp": "^0.33.5", "sonner": "^1.5.0", "swr": "^2.2.5", - "tailwindcss": "3.4.10", + "tailwindcss": "3.4.12", "ts-exif-parser": "^0.2.2", - "typescript": "5.5.4", + "typescript": "5.6.2", "undici": "^6.19.8", "use-debounce": "^10.0.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78d168d2..17fecaa5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,74 +9,74 @@ importers: .: dependencies: '@ai-sdk/openai': - specifier: ^0.0.56 - version: 0.0.56(zod@3.23.8) + specifier: ^0.0.61 + version: 0.0.61(zod@3.23.8) '@aws-sdk/client-s3': - specifier: 3.645.0 - version: 3.645.0 + specifier: 3.654.0 + version: 3.654.0 '@aws-sdk/s3-request-presigner': - specifier: 3.645.0 - version: 3.645.0 + specifier: 3.654.0 + version: 3.654.0 '@next/bundle-analyzer': - specifier: 14.2.7 - version: 14.2.7 + specifier: 14.2.13 + version: 14.2.13 '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 - version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tailwindcss/container-queries': specifier: ^0.1.1 - version: 0.1.1(tailwindcss@3.4.10) + version: 0.1.1(tailwindcss@3.4.12) '@tailwindcss/forms': specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.4.10) + version: 0.5.9(tailwindcss@3.4.12) '@testing-library/jest-dom': specifier: ^6.5.0 version: 6.5.0 '@testing-library/react': specifier: ^16.0.1 - version: 16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/jest': - specifier: ^29.5.12 - version: 29.5.12 + specifier: ^29.5.13 + version: 29.5.13 '@types/node': - specifier: ^22.5.4 - version: 22.5.4 + specifier: ^22.5.5 + version: 22.5.5 '@types/pg': - specifier: ^8.11.8 - version: 8.11.8 + specifier: ^8.11.10 + version: 8.11.10 '@types/react': - specifier: 18.3.5 - version: 18.3.5 + specifier: 18.3.8 + version: 18.3.8 '@types/react-dom': specifier: 18.3.0 version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.17.0 - version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) '@typescript-eslint/parser': specifier: ^7.17.0 - version: 7.17.0(eslint@8.57.0)(typescript@5.5.4) + version: 7.17.0(eslint@8.57.0)(typescript@5.6.2) '@upstash/ratelimit': - specifier: ^2.0.2 - version: 2.0.2 + specifier: ^2.0.3 + version: 2.0.3 '@vercel/analytics': specifier: ^1.3.1 - version: 1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.3.1(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/blob': - specifier: ^0.23.4 - version: 0.23.4 + specifier: ^0.24.0 + version: 0.24.0 '@vercel/kv': specifier: ^2.0.0 version: 2.0.0 '@vercel/speed-insights': specifier: ^1.0.12 - version: 1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4)) + version: 1.0.12(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.6.2)) ai: - specifier: ^3.3.27 - version: 3.3.27(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.4.0 + version: 3.4.0(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.6.2))(zod@3.23.8) autoprefixer: specifier: 10.4.20 - version: 10.4.20(postcss@8.4.45) + version: 10.4.20(postcss@8.4.47) camelcase-keys: specifier: ^9.1.3 version: 9.1.3 @@ -85,25 +85,25 @@ importers: version: 2.1.1 cmdk: specifier: ^1.0.0 - version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) date-fns: - specifier: ^3.6.0 - version: 3.6.0 + specifier: ^4.1.0 + version: 4.1.0 eslint: specifier: 8.57.0 version: 8.57.0 eslint-config-next: - specifier: 14.2.7 - version: 14.2.7(eslint@8.57.0)(typescript@5.5.4) + specifier: 14.2.13 + version: 14.2.13(eslint@8.57.0)(typescript@5.6.2) exifr: specifier: ^7.1.3 version: 7.1.3 framer-motion: - specifier: ^11.5.4 - version: 11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^11.5.6 + version: 11.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.4) + version: 29.7.0(@types/node@22.5.5) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -111,20 +111,20 @@ importers: specifier: ^5.0.7 version: 5.0.7 next: - specifier: 14.2.7 - version: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 14.2.13 + version: 14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: - specifier: 5.0.0-beta.19 - version: 5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + specifier: 5.0.0-beta.21 + version: 5.0.0-beta.21(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) pg: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.13.0 + version: 8.13.0 postcss: - specifier: 8.4.45 - version: 8.4.45 + specifier: 8.4.47 + version: 8.4.47 react: specifier: 18.3.1 version: 18.3.1 @@ -144,14 +144,14 @@ importers: specifier: ^2.2.5 version: 2.2.5(react@18.3.1) tailwindcss: - specifier: 3.4.10 - version: 3.4.10 + specifier: 3.4.12 + version: 3.4.12 ts-exif-parser: specifier: ^0.2.2 version: 0.2.2 typescript: - specifier: 5.5.4 - version: 5.5.4 + specifier: 5.6.2 + version: 5.6.2 undici: specifier: ^6.19.8 version: 6.19.8 @@ -164,14 +164,14 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} - '@ai-sdk/openai@0.0.56': - resolution: {integrity: sha512-+S98OBeLMwDqGlPr2FEo/61wNxlwVdB1x7lZg5bfZArht1psVDhT5P5jrDMeQUXlRR7T2H29VyUjbSr5yarmhQ==} + '@ai-sdk/openai@0.0.61': + resolution: {integrity: sha512-yIJ70xU9sbDjVAaNoq+W+0jnAgIUsx4e9VTnoNPXNTIQRpgpLvQ7iG8GYNgujO4oX4sLiHsWpOEMzrSwD0mNmw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/provider-utils@1.0.18': - resolution: {integrity: sha512-9u/XE/dB1gsIGcxiC5JfGOLzUz+EKRXt66T8KYWwDg4x8d02P+fI/EPOgkf+T4oLBrcQgvs4GPXPKoXGPJxBbg==} + '@ai-sdk/provider-utils@1.0.19': + resolution: {integrity: sha512-p02Fq5Mnc8T6nwRBN1Iaou8YXvN1sDS6hbmJaD5UaRbXjizbh+8rpFS/o7jqAHTwf3uHCDitP3pnODyHdc/CDQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -183,8 +183,8 @@ packages: resolution: {integrity: sha512-oAc49O5+xypVrKM7EUU5P/Y4DUL4JZUWVxhejoAVOTOl3WZUEWsMbP3QZR+TrimQIsS0WR/n9UuF6U0jPdp0tQ==} engines: {node: '>=18'} - '@ai-sdk/react@0.0.55': - resolution: {integrity: sha512-9fUUEEEoH01M6ZhvyZ/2v0DI6tiYnSldBg6RaKoy+qx2tSeKvOpFNZhT/iOvQ7oqAyyp0Ocg5Rj7L/jcLXSMxw==} + '@ai-sdk/react@0.0.59': + resolution: {integrity: sha512-1WbgO3J2/OoheMuNMxy5itJ3NVqOpqpAQxFNp7AoXgnDv4wDF4kTif61rTlKh7dCPvBHj2HXLmob+TrVFaWhYw==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -195,8 +195,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.44': - resolution: {integrity: sha512-3kMhxalepc78jWr2Qg1BAHbY04JKYxp8wRu3TACrRUdokxzwD5sbZYtTb7vu9tw2wx78rfu0DH44CESFWpSfZg==} + '@ai-sdk/solid@0.0.47': + resolution: {integrity: sha512-lVMxIxtuNqoo/TObSFGflEP2dUeJv7bfPQbS4jHTZGBNlyhgBRY2Xc19yNjA3QKRfvQNDVoQusqxn+18MiHJJQ==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -204,8 +204,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.46': - resolution: {integrity: sha512-cokqS91vQkpqiRgf8xKwOONFb/RwkIbRg9jYVRb+z5NR9OsWXKMEfoCAf8+VgURfVbp8nqA+ddRXvtgYCwqQjQ==} + '@ai-sdk/svelte@0.0.49': + resolution: {integrity: sha512-gV0MhaWxkatjf7uJrCAHO3bWrihokNUwGhuMCgyG+y53lwJKAYhR0zCoDRM2HnTJ89fdnx/PVe3R9fOWEVY5qA==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -213,8 +213,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.41': - resolution: {integrity: sha512-I0trJKWxVG8hXeG0MvKqLG54fZjdeGjXvcVZocaSnWMBhl9lpTQxrqAR6ZsQMFDXs5DbvXoKtQs488qu2Bzaiw==} + '@ai-sdk/ui-utils@0.0.44': + resolution: {integrity: sha512-0qiyun/n5zqJzQs/WfQT86dZE5DiDhSHJc7b7ZGLYvNMztHkRQmak2zUCZP4IyGVZEicyEPQK6NEEpBgkmd3Dg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -222,8 +222,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.46': - resolution: {integrity: sha512-H366ydskPbZP8uRs4sm3SAi97P3JVTRI5Q8xYTI6uTaY4UFBA6aOWdDxniYZNa67ebemfe11m7ksX4wHW6Wl8g==} + '@ai-sdk/vue@0.0.51': + resolution: {integrity: sha512-6RjuuRGf749EjnsfbETJpF0fmq6a1lF6qUUUnd/Q1Ojf0tX8fI4qwvNykbECZHWuIj42EqZ3HDuNNR9c8oG4rA==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -239,8 +239,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@auth/core@0.32.0': - resolution: {integrity: sha512-3+ssTScBd+1fd0/fscAyQN1tSygXzuhysuVVzB942ggU4mdfiTbv36P0ccVnExKWYJKvu3E2r3/zxXCCAmTOrg==} + '@auth/core@0.35.0': + resolution: {integrity: sha512-XvMALiYn5ZQd1hVeG1t+jCU89jRrc7ortl/05wkBrPHnRWZScxAK5jKuzBz+AOBQXewDjYcMpzeF5tTqg6rDhQ==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -276,143 +276,143 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.645.0': - resolution: {integrity: sha512-RjT/mfNv4yr1uv/+aEXgSIxC5EB+yHPSU7hH0KZOZrvZEFASLl0i4FeoHzbMEOH5KdKGAi0uu3zRP3D1y45sKg==} + '@aws-sdk/client-s3@3.654.0': + resolution: {integrity: sha512-EsyeZJhkZD2VMdZpNt4NhlQ3QUAF24gMC+5w2wpGg6Yw+Bv7VLdg1t3PkTQovriJX1KTJAYHcGAuy92OFmWIng==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.645.0': - resolution: {integrity: sha512-X9ULtdk3cO+1ysurEkJ1MSnu6U00qodXx+IVual+1jXX4RYY1WmQmfo7uDKf6FFkz7wW1DAqU+GJIBNQr0YH8A==} + '@aws-sdk/client-sso-oidc@3.654.0': + resolution: {integrity: sha512-gbHrKsEnaAtmkNCVQzLyiqMzpDaThV/bWl/ODEklI+t6stW3Pe3oDMstEHLfJ6JU5g8sYnx4VLuxlnJMtUkvPw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.645.0 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/client-sso@3.645.0': - resolution: {integrity: sha512-2rc8TjnsNddOeKQ/pfNN7deNvGLXAeKeYtHtGDAiM2qfTKxd2sNcAsZ+JCDLyshuD4xLM5fpUyR0X8As9EAouQ==} + '@aws-sdk/client-sso@3.654.0': + resolution: {integrity: sha512-4kBxs2IzCDtj6a6lRXa/lXK5wWpMGzwKtb+HMXf/rJYVM6x7wYRzc1hYrOd3DYkFQ/sR3dUFj+0mTP0os3aAbA==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.645.0': - resolution: {integrity: sha512-6azXYtvtnAsPf2ShN9vKynIYVcJOpo6IoVmoMAVgNaBJyllP+s/RORzranYZzckqfmrudSxtct4rVapjLWuAMg==} + '@aws-sdk/client-sts@3.654.0': + resolution: {integrity: sha512-tyHa8jsBy+/NQZFHm6Q2Q09Vi9p3EH4yPy6PU8yPewpi2klreObtrUd0anJa6nzjS9SSuqnlZWsRic3cQ4QwCg==} engines: {node: '>=16.0.0'} - '@aws-sdk/core@3.635.0': - resolution: {integrity: sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg==} + '@aws-sdk/core@3.654.0': + resolution: {integrity: sha512-4Rwx7BVaNaFqmXBDmnOkMbyuIFFbpZ+ru4lr660p45zY1QoNNSalechfoRffcokLFOZO+VWEJkdcorPUUU993w==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-env@3.620.1': - resolution: {integrity: sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==} + '@aws-sdk/credential-provider-env@3.654.0': + resolution: {integrity: sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.635.0': - resolution: {integrity: sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g==} + '@aws-sdk/credential-provider-http@3.654.0': + resolution: {integrity: sha512-tgmAH4MBi/aDR882lfw48+tDV95ZH3GWc1Eoe6DpNLiM3GN2VfU/cZwuHmi6aq+vAbdIlswBHJ/+va0fOvlyjw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.645.0': - resolution: {integrity: sha512-LlZW0qwUwNlTaAIDCNpLbPsyXvS42pRIwF92fgtCQedmdnpN3XRUC6hcwSYI7Xru3GGKp3RnceOvsdOaRJORsw==} + '@aws-sdk/credential-provider-ini@3.654.0': + resolution: {integrity: sha512-DKSdaNu2hwdmuvnm9KnA0NLqMWxxmxSOLWjSUSoFIm++wGXUjPrRMFYKvMktaXnPuyf5my8gF/yGbwzPZ8wlTg==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.645.0 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/credential-provider-node@3.645.0': - resolution: {integrity: sha512-eGFFuNvLeXjCJf5OCIuSEflxUowmK+bCS+lK4M8ofsYOEGAivdx7C0UPxNjHpvM8wKd8vpMl5phTeS9BWX5jMQ==} + '@aws-sdk/credential-provider-node@3.654.0': + resolution: {integrity: sha512-wPV7CNYaXDEc+SS+3R0v8SZwkHRUE1z2k2j1d49tH5QBDT4tb/k2V/biXWkwSk3hbR+IMWXmuhJDv/5lybhIvg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.620.1': - resolution: {integrity: sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==} + '@aws-sdk/credential-provider-process@3.654.0': + resolution: {integrity: sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.645.0': - resolution: {integrity: sha512-d6XuChAl5NCsCrUexc6AFb4efPmb9+66iwPylKG+iMTMYgO1ackfy1Q2/f35jdn0jolkPkzKsVyfzsEVoID6ew==} + '@aws-sdk/credential-provider-sso@3.654.0': + resolution: {integrity: sha512-7GFme6fWEdA/XYKzZPOAdj/jS6fMBy1NdSIZsDXikS0v9jU+ZzHrAaWt13YLzHyjgxB9Sg9id9ncdY1IiubQXQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-web-identity@3.621.0': - resolution: {integrity: sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==} + '@aws-sdk/credential-provider-web-identity@3.654.0': + resolution: {integrity: sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.621.0 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/middleware-bucket-endpoint@3.620.0': - resolution: {integrity: sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg==} + '@aws-sdk/middleware-bucket-endpoint@3.654.0': + resolution: {integrity: sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-expect-continue@3.620.0': - resolution: {integrity: sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A==} + '@aws-sdk/middleware-expect-continue@3.654.0': + resolution: {integrity: sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.620.0': - resolution: {integrity: sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA==} + '@aws-sdk/middleware-flexible-checksums@3.654.0': + resolution: {integrity: sha512-ZSRC+Lf9WxyoDLuTkd7JrFRrBLPLXcTOZzX6tDsnHc6tgdneBNwV3/ZOYUwQ8bdwLLnzSaQUU+X5B2BkEFKIhQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-host-header@3.620.0': - resolution: {integrity: sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==} + '@aws-sdk/middleware-host-header@3.654.0': + resolution: {integrity: sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-location-constraint@3.609.0': - resolution: {integrity: sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A==} + '@aws-sdk/middleware-location-constraint@3.654.0': + resolution: {integrity: sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.609.0': - resolution: {integrity: sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==} + '@aws-sdk/middleware-logger@3.654.0': + resolution: {integrity: sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-recursion-detection@3.620.0': - resolution: {integrity: sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==} + '@aws-sdk/middleware-recursion-detection@3.654.0': + resolution: {integrity: sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-s3@3.635.0': - resolution: {integrity: sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw==} + '@aws-sdk/middleware-sdk-s3@3.654.0': + resolution: {integrity: sha512-6prq+GK6hLMAbxEb83tBMb1YiTWWK196fJhFO/7gE5TUPL1v756RhQZzKV/njbwB1fIBjRBTuhYLh5Bn98HhdA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-ssec@3.609.0': - resolution: {integrity: sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==} + '@aws-sdk/middleware-ssec@3.654.0': + resolution: {integrity: sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.645.0': - resolution: {integrity: sha512-NpTAtqWK+49lRuxfz7st9for80r4NriCMK0RfdJSoPFVntjsSQiQ7+2nW2XL05uVY633e9DvCAw8YatX3zd1mw==} + '@aws-sdk/middleware-user-agent@3.654.0': + resolution: {integrity: sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg==} engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.614.0': - resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==} + '@aws-sdk/region-config-resolver@3.654.0': + resolution: {integrity: sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg==} engines: {node: '>=16.0.0'} - '@aws-sdk/s3-request-presigner@3.645.0': - resolution: {integrity: sha512-YyEwg2ryp8ECDl/W9oJC4FqqtZdkIbaVXveqwv93Aq2hgui0XrTFbhZNXJUvfU/mBVjx3Kud/FQTB3Bx0qwqPQ==} + '@aws-sdk/s3-request-presigner@3.654.0': + resolution: {integrity: sha512-se1DllTTkaB85RSB60U/VUq5rCzwhqYZudxrf1zlWD0YjZpwKqifWgBomd3AyPZtQRQOcQooBcmZCVfGfdAuJQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/signature-v4-multi-region@3.635.0': - resolution: {integrity: sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q==} + '@aws-sdk/signature-v4-multi-region@3.654.0': + resolution: {integrity: sha512-f8kyvbzgD3lSK1kFc3jsDCYjdutcqGO3tOzYO/QIK7BTl5lxc4rm6IKTcF2UYJsn8jiNqih7tVK8aVIGi8IF/w==} engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.614.0': - resolution: {integrity: sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==} + '@aws-sdk/token-providers@3.654.0': + resolution: {integrity: sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.614.0 + '@aws-sdk/client-sso-oidc': ^3.654.0 - '@aws-sdk/types@3.609.0': - resolution: {integrity: sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==} + '@aws-sdk/types@3.654.0': + resolution: {integrity: sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A==} engines: {node: '>=16.0.0'} '@aws-sdk/util-arn-parser@3.568.0': resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.645.0': - resolution: {integrity: sha512-Oe+xaU4ic4PB1k3pb5VTC1/MWES13IlgpaQw01bVHGfwP6Yv6zZOxizRzca2Y3E+AyR+nKD7vXtHRY+w3bi4bg==} + '@aws-sdk/util-endpoints@3.654.0': + resolution: {integrity: sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-format-url@3.609.0': - resolution: {integrity: sha512-fuk29BI/oLQlJ7pfm6iJ4gkEpHdavffAALZwXh9eaY1vQ0ip0aKfRTiNudPoJjyyahnz5yJ1HkmlcDitlzsOrQ==} + '@aws-sdk/util-format-url@3.654.0': + resolution: {integrity: sha512-2yAlJ/l1uTJhS52iu4+/EvdIyQhDBL+nATY8rEjFI0H+BHGVrJIH2CL4DByhvi2yvYwsqQX0HYah6pF/yoXukA==} engines: {node: '>=16.0.0'} '@aws-sdk/util-locate-window@3.568.0': resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.609.0': - resolution: {integrity: sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==} + '@aws-sdk/util-user-agent-browser@3.654.0': + resolution: {integrity: sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA==} - '@aws-sdk/util-user-agent-node@3.614.0': - resolution: {integrity: sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==} + '@aws-sdk/util-user-agent-node@3.654.0': + resolution: {integrity: sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -420,8 +420,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.609.0': - resolution: {integrity: sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA==} + '@aws-sdk/xml-builder@3.654.0': + resolution: {integrity: sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA==} engines: {node: '>=16.0.0'} '@babel/code-frame@7.24.2': @@ -851,65 +851,65 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/bundle-analyzer@14.2.7': - resolution: {integrity: sha512-Zz55BLjoNKiUjr8PJIMTXFQnbUEpk8qkXP5nmEcXvOorbruQOIdmkRa3sahlJZPWTjsZNpxwImhZf2yFMVMWeg==} + '@next/bundle-analyzer@14.2.13': + resolution: {integrity: sha512-CQOVKmfenD9HsG4AmyXG2ElMvtGKAT9TlS2JLgpL/EORi4WX+QMiQ8Ri6b+A7HRT+AiUGjsYnocIOET59i6Jfw==} - '@next/env@14.2.7': - resolution: {integrity: sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ==} + '@next/env@14.2.13': + resolution: {integrity: sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==} - '@next/eslint-plugin-next@14.2.7': - resolution: {integrity: sha512-+7xh142AdhZGjY9/L0iFo7mqRBMJHe+q+uOL+hto1Lfo9DeWCGcR6no4StlFbVSVcA6fQLKEX6y6qhMsSKbgNQ==} + '@next/eslint-plugin-next@14.2.13': + resolution: {integrity: sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==} - '@next/swc-darwin-arm64@14.2.7': - resolution: {integrity: sha512-UhZGcOyI9LE/tZL3h9rs/2wMZaaJKwnpAyegUVDGZqwsla6hMfeSj9ssBWQS9yA4UXun3pPhrFLVnw5KXZs3vw==} + '@next/swc-darwin-arm64@14.2.13': + resolution: {integrity: sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.7': - resolution: {integrity: sha512-ys2cUgZYRc+CbyDeLAaAdZgS7N1Kpyy+wo0b/gAj+SeOeaj0Lw/q+G1hp+DuDiDAVyxLBCJXEY/AkhDmtihUTA==} + '@next/swc-darwin-x64@14.2.13': + resolution: {integrity: sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.7': - resolution: {integrity: sha512-2xoWtE13sUJ3qrC1lwE/HjbDPm+kBQYFkkiVECJWctRASAHQ+NwjMzgrfqqMYHfMxFb5Wws3w9PqzZJqKFdWcQ==} + '@next/swc-linux-arm64-gnu@14.2.13': + resolution: {integrity: sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.7': - resolution: {integrity: sha512-+zJ1gJdl35BSAGpkCbfyiY6iRTaPrt3KTl4SF/B1NyELkqqnrNX6cp4IjjjxKpd64/7enI0kf6b9O1Uf3cL0pw==} + '@next/swc-linux-arm64-musl@14.2.13': + resolution: {integrity: sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.7': - resolution: {integrity: sha512-m6EBqrskeMUzykBrv0fDX/28lWIBGhMzOYaStp0ihkjzIYJiKUOzVYD1gULHc8XDf5EMSqoH/0/TRAgXqpQwmw==} + '@next/swc-linux-x64-gnu@14.2.13': + resolution: {integrity: sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.7': - resolution: {integrity: sha512-gUu0viOMvMlzFRz1r1eQ7Ql4OE+hPOmA7smfZAhn8vC4+0swMZaZxa9CSIozTYavi+bJNDZ3tgiSdMjmMzRJlQ==} + '@next/swc-linux-x64-musl@14.2.13': + resolution: {integrity: sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.7': - resolution: {integrity: sha512-PGbONHIVIuzWlYmLvuFKcj+8jXnLbx4WrlESYlVnEzDsa3+Q2hI1YHoXaSmbq0k4ZwZ7J6sWNV4UZfx1OeOlbQ==} + '@next/swc-win32-arm64-msvc@14.2.13': + resolution: {integrity: sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.7': - resolution: {integrity: sha512-BiSY5umlx9ed5RQDoHcdbuKTUkuFORDqzYKPHlLeS+STUWQKWziVOn3Ic41LuTBvqE0TRJPKpio9GSIblNR+0w==} + '@next/swc-win32-ia32-msvc@14.2.13': + resolution: {integrity: sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.7': - resolution: {integrity: sha512-pxsI23gKWRt/SPHFkDEsP+w+Nd7gK37Hpv0ngc5HpWy2e7cKx9zR/+Q2ptAUqICNTecAaGWvmhway7pj/JLEWA==} + '@next/swc-win32-x64-msvc@14.2.13': + resolution: {integrity: sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1371,8 +1371,8 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@smithy/abort-controller@3.1.1': - resolution: {integrity: sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==} + '@smithy/abort-controller@3.1.4': + resolution: {integrity: sha512-VupaALAQlXViW3/enTf/f5l5JZYSAxoJL7f0nanhNNKnww6DGCg1oYIuNP78KDugnkwthBO6iEcym16HhWV8RQ==} engines: {node: '>=16.0.0'} '@smithy/chunked-blob-reader-native@3.0.0': @@ -1381,53 +1381,53 @@ packages: '@smithy/chunked-blob-reader@3.0.0': resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==} - '@smithy/config-resolver@3.0.5': - resolution: {integrity: sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==} + '@smithy/config-resolver@3.0.8': + resolution: {integrity: sha512-Tv1obAC18XOd2OnDAjSWmmthzx6Pdeh63FbLin8MlPiuJ2ATpKkq0NcNOJFr0dO+JmZXnwu8FQxKJ3TKJ3Hulw==} engines: {node: '>=16.0.0'} - '@smithy/core@2.4.0': - resolution: {integrity: sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w==} + '@smithy/core@2.4.5': + resolution: {integrity: sha512-Z0qlPXgZ0pouYgnu/cZTEYeRAvniiKZmVl4wIbZHX/nEMHkMDV9ao6KFArsU9KndE0TuhL149xcRx45wfw1YCA==} engines: {node: '>=16.0.0'} - '@smithy/credential-provider-imds@3.2.0': - resolution: {integrity: sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA==} + '@smithy/credential-provider-imds@3.2.3': + resolution: {integrity: sha512-VoxMzSzdvkkjMJNE38yQgx4CfnmT+Z+5EUXkg4x7yag93eQkVQgZvN3XBSHC/ylfBbLbAtdu7flTCChX9I+mVg==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-codec@3.1.2': - resolution: {integrity: sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==} + '@smithy/eventstream-codec@3.1.5': + resolution: {integrity: sha512-6pu+PT2r+5ZnWEV3vLV1DzyrpJ0TmehQlniIDCSpZg6+Ji2SfOI38EqUyQ+O8lotVElCrfVc9chKtSMe9cmCZQ==} - '@smithy/eventstream-serde-browser@3.0.6': - resolution: {integrity: sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ==} + '@smithy/eventstream-serde-browser@3.0.9': + resolution: {integrity: sha512-PiQLo6OQmZAotJweIcObL1H44gkvuJACKMNqpBBe5Rf2Ax1DOcGi/28+feZI7yTe1ERHlQQaGnm8sSkyDUgsMg==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-config-resolver@3.0.3': - resolution: {integrity: sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==} + '@smithy/eventstream-serde-config-resolver@3.0.6': + resolution: {integrity: sha512-iew15It+c7WfnVowWkt2a7cdPp533LFJnpjDQgfZQcxv2QiOcyEcea31mnrk5PVbgo0nNH3VbYGq7myw2q/F6A==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-node@3.0.5': - resolution: {integrity: sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ==} + '@smithy/eventstream-serde-node@3.0.8': + resolution: {integrity: sha512-6m+wI+fT0na+6oao6UqALVA38fsScCpoG5UO/A8ZSyGLnPM2i4MS1cFUhpuALgvLMxfYoTCh7qSeJa0aG4IWpQ==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-universal@3.0.5': - resolution: {integrity: sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ==} + '@smithy/eventstream-serde-universal@3.0.8': + resolution: {integrity: sha512-09tqzIQ6e+7jLqGvRji1yJoDbL/zob0OFhq75edgStWErGLf16+yI5hRc/o9/YAybOhUZs/swpW2SPn892G5Gg==} engines: {node: '>=16.0.0'} - '@smithy/fetch-http-handler@3.2.4': - resolution: {integrity: sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg==} + '@smithy/fetch-http-handler@3.2.8': + resolution: {integrity: sha512-Lqe0B8F5RM7zkw//6avq1SJ8AfaRd3ubFUS1eVp5WszV7p6Ne5hQ4dSuMHDpNRPhgTvj4va9Kd/pcVigHEHRow==} - '@smithy/hash-blob-browser@3.1.2': - resolution: {integrity: sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==} + '@smithy/hash-blob-browser@3.1.5': + resolution: {integrity: sha512-Vi3eoNCmao4iKglS80ktYnBOIqZhjbDDwa1IIbF/VaJ8PsHnZTQ5wSicicPrU7nTI4JPFn92/txzWkh4GlK18Q==} - '@smithy/hash-node@3.0.3': - resolution: {integrity: sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==} + '@smithy/hash-node@3.0.6': + resolution: {integrity: sha512-c/FHEdKK/7DU2z6ZE91L36ahyXWayR3B+FzELjnYq7wH5YqIseM24V+pWCS9kFn1Ln8OFGTf+pyYPiHZuX0s/Q==} engines: {node: '>=16.0.0'} - '@smithy/hash-stream-node@3.1.2': - resolution: {integrity: sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==} + '@smithy/hash-stream-node@3.1.5': + resolution: {integrity: sha512-61CyFCzqN3VBfcnGX7mof/rkzLb8oHjm4Lr6ZwBIRpBssBb8d09ChrZAqinP2rUrA915BRNkq9NpJz18N7+3hQ==} engines: {node: '>=16.0.0'} - '@smithy/invalid-dependency@3.0.3': - resolution: {integrity: sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==} + '@smithy/invalid-dependency@3.0.6': + resolution: {integrity: sha512-czM7Ioq3s8pIXht7oD+vmgy4Wfb4XavU/k/irO8NdXFFOx7YAlsCCcKOh/lJD1mJSYQqiR7NmpZ9JviryD/7AQ==} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} @@ -1437,75 +1437,75 @@ packages: resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} engines: {node: '>=16.0.0'} - '@smithy/md5-js@3.0.3': - resolution: {integrity: sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==} + '@smithy/md5-js@3.0.6': + resolution: {integrity: sha512-Ze690T8O3M5SVbb70WormwrKzVf9QQRtIuxtJDgpUQDkmt+PtdYDetBbyCbF9ryupxLw6tgzWKgwffAShhVIXQ==} - '@smithy/middleware-content-length@3.0.5': - resolution: {integrity: sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw==} + '@smithy/middleware-content-length@3.0.8': + resolution: {integrity: sha512-VuyszlSO49WKh3H9/kIO2kf07VUwGV80QRiaDxUfP8P8UKlokz381ETJvwLhwuypBYhLymCYyNhB3fLAGBX2og==} engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@3.1.0': - resolution: {integrity: sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw==} + '@smithy/middleware-endpoint@3.1.3': + resolution: {integrity: sha512-KeM/OrK8MVFUsoJsmCN0MZMVPjKKLudn13xpgwIMpGTYpA8QZB2Xq5tJ+RE6iu3A6NhOI4VajDTwBsm8pwwrhg==} engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@3.0.15': - resolution: {integrity: sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ==} + '@smithy/middleware-retry@3.0.20': + resolution: {integrity: sha512-HELCOVwYw5hFDBm69d+LmmGjBCjWnwp/t7SJiHmp+c4u9vgfIaCjdSeIdnlOsLrr5ic5jGTJXvJFUQnd987b/g==} engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@3.0.3': - resolution: {integrity: sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==} + '@smithy/middleware-serde@3.0.6': + resolution: {integrity: sha512-KKTUSl1MzOM0MAjGbudeaVNtIDo+PpekTBkCNwvfZlKndodrnvRo+00USatiyLOc0ujjO9UydMRu3O9dYML7ag==} engines: {node: '>=16.0.0'} - '@smithy/middleware-stack@3.0.3': - resolution: {integrity: sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==} + '@smithy/middleware-stack@3.0.6': + resolution: {integrity: sha512-2c0eSYhTQ8xQqHMcRxLMpadFbTXg6Zla5l0mwNftFCZMQmuhI7EbAJMx6R5eqfuV3YbJ3QGyS3d5uSmrHV8Khg==} engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@3.1.4': - resolution: {integrity: sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==} + '@smithy/node-config-provider@3.1.7': + resolution: {integrity: sha512-g3mfnC3Oo8pOI0dYuPXLtdW1WGVb3bR2tkV21GNkm0ZvQjLTtamXAwCWt/FCb0HGvKt3gHHmF1XerG0ICfalOg==} engines: {node: '>=16.0.0'} - '@smithy/node-http-handler@3.1.4': - resolution: {integrity: sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg==} + '@smithy/node-http-handler@3.2.3': + resolution: {integrity: sha512-/gcm5DJ3k1b1zEInzBGAZC8ntJ+jwrz1NcSIu+9dSXd1FfG0G6QgkDI40tt8/WYUbHtLyo8fEqtm2v29koWo/w==} engines: {node: '>=16.0.0'} - '@smithy/property-provider@3.1.3': - resolution: {integrity: sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==} + '@smithy/property-provider@3.1.6': + resolution: {integrity: sha512-NK3y/T7Q/Bw+Z8vsVs9MYIQ5v7gOX7clyrXcwhhIBQhbPgRl6JDrZbusO9qWDhcEus75Tg+VCxtIRfo3H76fpw==} engines: {node: '>=16.0.0'} - '@smithy/protocol-http@4.1.0': - resolution: {integrity: sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA==} + '@smithy/protocol-http@4.1.3': + resolution: {integrity: sha512-GcbMmOYpH9iRqtC05RbRnc/0FssxSTHlmaNhYBTgSgNCYpdR3Kt88u5GAZTBmouzv+Zlj/VRv92J9ruuDeJuEw==} engines: {node: '>=16.0.0'} - '@smithy/querystring-builder@3.0.3': - resolution: {integrity: sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==} + '@smithy/querystring-builder@3.0.6': + resolution: {integrity: sha512-sQe08RunoObe+Usujn9+R2zrLuQERi3CWvRO3BvnoWSYUaIrLKuAIeY7cMeDax6xGyfIP3x/yFWbEKSXvOnvVg==} engines: {node: '>=16.0.0'} - '@smithy/querystring-parser@3.0.3': - resolution: {integrity: sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==} + '@smithy/querystring-parser@3.0.6': + resolution: {integrity: sha512-UJKw4LlEkytzz2Wq+uIdHf6qOtFfee/o7ruH0jF5I6UAuU+19r9QV7nU3P/uI0l6+oElRHmG/5cBBcGJrD7Ozg==} engines: {node: '>=16.0.0'} - '@smithy/service-error-classification@3.0.3': - resolution: {integrity: sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==} + '@smithy/service-error-classification@3.0.6': + resolution: {integrity: sha512-53SpchU3+DUZrN7J6sBx9tBiCVGzsib2e4sc512Q7K9fpC5zkJKs6Z9s+qbMxSYrkEkle6hnMtrts7XNkMJJMg==} engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@3.1.4': - resolution: {integrity: sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==} + '@smithy/shared-ini-file-loader@3.1.7': + resolution: {integrity: sha512-IA4K2qTJYXkF5OfVN4vsY1hfnUZjaslEE8Fsr/gGFza4TAC2A9NfnZuSY2srQIbt9bwtjHiAayrRVgKse4Q7fA==} engines: {node: '>=16.0.0'} - '@smithy/signature-v4@4.1.0': - resolution: {integrity: sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag==} + '@smithy/signature-v4@4.1.4': + resolution: {integrity: sha512-72MiK7xYukNsnLJI9NqvUHqTu0ziEsfMsYNlWpiJfuGQnCTFKpckThlEatirvcA/LmT1h7rRO+pJD06PYsPu9Q==} engines: {node: '>=16.0.0'} - '@smithy/smithy-client@3.2.0': - resolution: {integrity: sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw==} + '@smithy/smithy-client@3.3.4': + resolution: {integrity: sha512-NKw/2XxOW/Rg3rzB90HxsmGok5oS6vRzJgMh/JN4BHaOQQ4q5OuX999GmOGxEp730wbpIXIowfKZmIMXkG4v0Q==} engines: {node: '>=16.0.0'} - '@smithy/types@3.3.0': - resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==} + '@smithy/types@3.4.2': + resolution: {integrity: sha512-tHiFcfcVedVBHpmHUEUHOCCih8iZbIAYn9NvPsNzaPm/237I3imdDdZoOC8c87H5HBAVEa06tTgb+OcSWV9g5w==} engines: {node: '>=16.0.0'} - '@smithy/url-parser@3.0.3': - resolution: {integrity: sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==} + '@smithy/url-parser@3.0.6': + resolution: {integrity: sha512-47Op/NU8Opt49KyGpHtVdnmmJMsp2hEwBdyjuFB9M2V5QVOwA7pBhhxKN5z6ztKGrMw76gd8MlbPuzzvaAncuQ==} '@smithy/util-base64@3.0.0': resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} @@ -1530,32 +1530,32 @@ packages: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@3.0.15': - resolution: {integrity: sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg==} + '@smithy/util-defaults-mode-browser@3.0.20': + resolution: {integrity: sha512-HpYmCpEThQJpCKzwzrGrklhdegRfuXI9keHRrHidbyEMliCdgic6t38MikJeZEkdIcEMhO1g95HIYMzjUzB+xg==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@3.0.15': - resolution: {integrity: sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A==} + '@smithy/util-defaults-mode-node@3.0.20': + resolution: {integrity: sha512-atdsHNtAX0rwTvRRGsrONU0C0XzapH6tI8T1y/OReOvWN7uBwXqqWRft6m8egU2DgeReU0xqT3PHdGCe5VRaaQ==} engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@2.0.5': - resolution: {integrity: sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==} + '@smithy/util-endpoints@2.1.2': + resolution: {integrity: sha512-FEISzffb4H8DLzGq1g4MuDpcv6CIG15fXoQzDH9SjpRJv6h7J++1STFWWinilG0tQh9H1v2UKWG19Jjr2B16zQ==} engines: {node: '>=16.0.0'} '@smithy/util-hex-encoding@3.0.0': resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} engines: {node: '>=16.0.0'} - '@smithy/util-middleware@3.0.3': - resolution: {integrity: sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==} + '@smithy/util-middleware@3.0.6': + resolution: {integrity: sha512-BxbX4aBhI1O9p87/xM+zWy0GzT3CEVcXFPBRDoHAM+pV0eSW156pR+PSYEz0DQHDMYDsYAflC2bQNz2uaDBUZQ==} engines: {node: '>=16.0.0'} - '@smithy/util-retry@3.0.3': - resolution: {integrity: sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==} + '@smithy/util-retry@3.0.6': + resolution: {integrity: sha512-BRZiuF7IwDntAbevqMco67an0Sr9oLQJqqRCsSPZZHYRnehS0LHDAkJk/pSmI7Z8c/1Vet294H7fY2fWUgB+Rg==} engines: {node: '>=16.0.0'} - '@smithy/util-stream@3.1.3': - resolution: {integrity: sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw==} + '@smithy/util-stream@3.1.8': + resolution: {integrity: sha512-hoKOqSmb8FD3WLObuB5hwbM7bNIWgcnvkThokTvVq7J5PKjlLUK5qQQcB9zWLHIoSaIlf3VIv2OxZY2wtQjcRQ==} engines: {node: '>=16.0.0'} '@smithy/util-uri-escape@3.0.0': @@ -1570,8 +1570,8 @@ packages: resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} engines: {node: '>=16.0.0'} - '@smithy/util-waiter@3.1.2': - resolution: {integrity: sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==} + '@smithy/util-waiter@3.1.5': + resolution: {integrity: sha512-jYOSvM3H6sZe3CHjzD2VQNCjWBJs+4DbtwBMvUp9y5EnnwNa7NQxTeYeQw0CKCAdGGZ3QvVkyJmvbvs5M/B10A==} engines: {node: '>=16.0.0'} '@swc/counter@0.1.3': @@ -1653,8 +1653,8 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.13': + resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==} '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} @@ -1662,11 +1662,11 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/node@22.5.5': + resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} - '@types/pg@8.11.8': - resolution: {integrity: sha512-IqpCf8/569txXN/HoP5i1LjXfKZWL76Yr2R77xgeIICUbAYHeoaEZFhYHo2uDftecLWrTJUq63JvQu8q3lnDyA==} + '@types/pg@8.11.10': + resolution: {integrity: sha512-LczQUW4dbOQzsH2RQ5qoeJ6qJPdrcM/DcMLoqWQkMLMsq83J5lAX3LXjdkWdpscFy67JSOWDnh7Ny/sPFykmkg==} '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} @@ -1674,8 +1674,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.5': - resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + '@types/react@18.3.8': + resolution: {integrity: sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1710,24 +1710,10 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.2.0': - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/scope-manager@7.17.0': resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.2.0': - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/type-utils@7.17.0': resolution: {integrity: sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1742,10 +1728,6 @@ packages: resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.2.0': - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/typescript-estree@7.17.0': resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1755,15 +1737,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.2.0': - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/utils@7.17.0': resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1774,10 +1747,6 @@ packages: resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.2.0': - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -1785,8 +1754,8 @@ packages: resolution: {integrity: sha512-7qJHGxpQgQr9/vmeS1PktEwvNAF7TI4iJDi8Pu2CFZ9YUGHZH4fOP5TfYlZ4aVxfopnELiE4BS4FBjyK7V1/xQ==} engines: {node: '>=16.0.0'} - '@upstash/ratelimit@2.0.2': - resolution: {integrity: sha512-1J5Szbu5r9OTV2F95SinFVo5DQ7jm1Gmal9xD7HrcBlOxyn7YXToEsK2j6lSNJEhklvKl96Ntzzd3Q/yR9GB2A==} + '@upstash/ratelimit@2.0.3': + resolution: {integrity: sha512-BMUpZPZ9IMwrUwohw0HoVAwjBRo5SDb0riAxfCGrLbutuZTPiVagh017Cm3GfhMqwUWLOp0xJQxTCXp812UJVQ==} '@upstash/redis@1.31.3': resolution: {integrity: sha512-KtVgWBUEx/LGbR8oRwYexwzHh3s5DNqYW0bjkD+gjFZVOnREJITvK+hC4PjSSD+8D4qJ+Xbkfmy8ANADZ9EUFg==} @@ -1802,8 +1771,8 @@ packages: react: optional: true - '@vercel/blob@0.23.4': - resolution: {integrity: sha512-cOU2e01RWZXFyc/OVRq+zZg38m34bcxpQk5insKp3Td9akNWThrXiF2URFHpRlm4fbaQ/l7pPSOB5nkLq+t6pw==} + '@vercel/blob@0.24.0': + resolution: {integrity: sha512-4G6ez8gk1+TTxPepao6ilMTQ9cljgPK1SVXCesGtHUYywu8KXUppNWuLIkAgHjy7mUHkvJ6eMtqwXNUEsVGYZQ==} engines: {node: '>=16.14'} '@vercel/kv@2.0.0': @@ -1887,8 +1856,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - ai@3.3.27: - resolution: {integrity: sha512-ARKVzndpE4ujlXWU7I72Ei7nlEcUGC84HvbduOFZW1jdTG0EU/pgT6meRLYCuY+khKfmsI7VCJcgyXuZrvwN5g==} + ai@3.4.0: + resolution: {integrity: sha512-79MZD3zoljLBf7Jtmd39bhDA3W7WPsozIi99sLrZlgxzh3JBX1XtCxHwrUYHQtAxl21BGzHmXpgNfLiQjdTAfA==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2286,8 +2255,8 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -2475,8 +2444,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-next@14.2.7: - resolution: {integrity: sha512-ppmy+QdQ7qkuCHGDlPjWaoSbJvjGpWSBD4zEW8f1eWlxYXYpZK7QzBOer1EcHKT3uKhlY1JjUus9g7Kvv712rw==} + eslint-config-next@14.2.13: + resolution: {integrity: sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -2666,8 +2635,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.5.4: - resolution: {integrity: sha512-E+tb3/G6SO69POkdJT+3EpdMuhmtCh9EWuK4I1DnIC23L7tFPrl8vxP+LSovwaw6uUr73rUbpb4FgK011wbRJQ==} + framer-motion@11.5.6: + resolution: {integrity: sha512-JMwUpAxv/DWgul9vPgX0ElKn0G66sUc6O9tOXsYwn3zxwvhxFljSXC0XT2QCzuTYBshwC8nyDAa1SYcV0Ldbhw==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -3358,10 +3327,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} @@ -3404,12 +3369,12 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - next-auth@5.0.0-beta.19: - resolution: {integrity: sha512-YHu1igcAxZPh8ZB7GIM93dqgY6gcAzq66FOhQFheAdOx1raxNcApt05nNyNCSB6NegSiyJ4XOPsaNow4pfDmsg==} + next-auth@5.0.0-beta.21: + resolution: {integrity: sha512-VrT6LV9u/o5tMuWxRDN5d/K1OgPskrMHy+aITTwasVfIrkIaU/8UVg3TXH8ynJgzhfzlDx/3hLWGhi+eXQw4qg==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 - next: ^14 || ^15.0.0-0 + next: ^14.0.0-0 || ^15.0.0-0 nodemailer: ^6.6.5 react: ^18.2.0 || ^19.0.0-0 peerDependenciesMeta: @@ -3426,8 +3391,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.7: - resolution: {integrity: sha512-4Qy2aK0LwH4eQiSvQWyKuC7JXE13bIopEQesWE0c/P3uuNRnZCQanI0vsrMLmUQJLAto+A+/8+sve2hd+BQuOQ==} + next@14.2.13: + resolution: {integrity: sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -3588,8 +3553,8 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - pg-connection-string@2.6.4: - resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} + pg-connection-string@2.7.0: + resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} @@ -3599,14 +3564,17 @@ packages: resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} engines: {node: '>=4'} - pg-pool@3.6.2: - resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} + pg-pool@3.7.0: + resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} peerDependencies: pg: '>=8.0' pg-protocol@1.6.1: resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} @@ -3615,8 +3583,8 @@ packages: resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} engines: {node: '>=10'} - pg@8.12.0: - resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==} + pg@8.13.0: + resolution: {integrity: sha512-34wkUTh3SxTClfoHB3pQ7bIMvw9dpFU1audQQeZG837fmHfHpr14n/AELVDoOYVDW2h5RDWU78tFjkD+erSBsw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -3630,6 +3598,9 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3691,8 +3662,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -4024,6 +3995,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} @@ -4163,8 +4138,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwindcss@3.4.10: - resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} + tailwindcss@3.4.12: + resolution: {integrity: sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==} engines: {node: '>=14.0.0'} hasBin: true @@ -4263,8 +4238,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -4492,13 +4467,13 @@ snapshots: '@adobe/css-tools@4.4.0': {} - '@ai-sdk/openai@0.0.56(zod@3.23.8)': + '@ai-sdk/openai@0.0.61(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) zod: 3.23.8 - '@ai-sdk/provider-utils@1.0.18(zod@3.23.8)': + '@ai-sdk/provider-utils@1.0.19(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.23 eventsource-parser: 1.1.2 @@ -4511,51 +4486,51 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.55(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/react@0.0.59(react@18.3.1)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.44(solid-js@1.8.17)(zod@3.23.8)': + '@ai-sdk/solid@0.0.47(solid-js@1.8.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) optionalDependencies: solid-js: 1.8.17 transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.46(svelte@4.2.17)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.49(svelte@4.2.17)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) sswr: 2.1.0(svelte@4.2.17) optionalDependencies: svelte: 4.2.17 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.41(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.44(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.23.2(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.46(vue@3.4.27(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.51(vue@3.4.27(typescript@5.6.2))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) - swrv: 1.0.4(vue@3.4.27(typescript@5.5.4)) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + swrv: 1.0.4(vue@3.4.27(typescript@5.6.2)) optionalDependencies: - vue: 3.4.27(typescript@5.5.4) + vue: 3.4.27(typescript@5.6.2) transitivePeerDependencies: - zod @@ -4566,7 +4541,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@auth/core@0.32.0': + '@auth/core@0.35.0': dependencies: '@panva/hkdf': 1.1.1 '@types/cookie': 0.6.0 @@ -4579,20 +4554,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 tslib: 2.6.2 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 tslib: 2.6.2 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 @@ -4602,7 +4577,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 @@ -4610,7 +4585,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 tslib: 2.6.2 '@aws-crypto/supports-web-crypto@5.2.0': @@ -4619,471 +4594,473 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 - '@aws-sdk/client-s3@3.645.0': + '@aws-sdk/client-s3@3.654.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/client-sts': 3.645.0 - '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/middleware-bucket-endpoint': 3.620.0 - '@aws-sdk/middleware-expect-continue': 3.620.0 - '@aws-sdk/middleware-flexible-checksums': 3.620.0 - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-location-constraint': 3.609.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-sdk-s3': 3.635.0 - '@aws-sdk/middleware-ssec': 3.609.0 - '@aws-sdk/middleware-user-agent': 3.645.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/signature-v4-multi-region': 3.635.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.645.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@aws-sdk/xml-builder': 3.609.0 - '@smithy/config-resolver': 3.0.5 - '@smithy/core': 2.4.0 - '@smithy/eventstream-serde-browser': 3.0.6 - '@smithy/eventstream-serde-config-resolver': 3.0.3 - '@smithy/eventstream-serde-node': 3.0.5 - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/hash-blob-browser': 3.1.2 - '@smithy/hash-node': 3.0.3 - '@smithy/hash-stream-node': 3.1.2 - '@smithy/invalid-dependency': 3.0.3 - '@smithy/md5-js': 3.0.3 - '@smithy/middleware-content-length': 3.0.5 - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-retry': 3.0.15 - '@smithy/middleware-serde': 3.0.3 - '@smithy/middleware-stack': 3.0.3 - '@smithy/node-config-provider': 3.1.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-bucket-endpoint': 3.654.0 + '@aws-sdk/middleware-expect-continue': 3.654.0 + '@aws-sdk/middleware-flexible-checksums': 3.654.0 + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-location-constraint': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-sdk-s3': 3.654.0 + '@aws-sdk/middleware-ssec': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/signature-v4-multi-region': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 + '@aws-sdk/xml-builder': 3.654.0 + '@smithy/config-resolver': 3.0.8 + '@smithy/core': 2.4.5 + '@smithy/eventstream-serde-browser': 3.0.9 + '@smithy/eventstream-serde-config-resolver': 3.0.6 + '@smithy/eventstream-serde-node': 3.0.8 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/hash-blob-browser': 3.1.5 + '@smithy/hash-node': 3.0.6 + '@smithy/hash-stream-node': 3.1.5 + '@smithy/invalid-dependency': 3.0.6 + '@smithy/md5-js': 3.0.6 + '@smithy/middleware-content-length': 3.0.8 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-retry': 3.0.20 + '@smithy/middleware-serde': 3.0.6 + '@smithy/middleware-stack': 3.0.6 + '@smithy/node-config-provider': 3.1.7 + '@smithy/node-http-handler': 3.2.3 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.15 - '@smithy/util-defaults-mode-node': 3.0.15 - '@smithy/util-endpoints': 2.0.5 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.3 - '@smithy/util-stream': 3.1.3 + '@smithy/util-defaults-mode-browser': 3.0.20 + '@smithy/util-defaults-mode-node': 3.0.20 + '@smithy/util-endpoints': 2.1.2 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-retry': 3.0.6 + '@smithy/util-stream': 3.1.8 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.2 + '@smithy/util-waiter': 3.1.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)': + '@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.645.0 - '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.645.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.645.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.5 - '@smithy/core': 2.4.0 - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/hash-node': 3.0.3 - '@smithy/invalid-dependency': 3.0.3 - '@smithy/middleware-content-length': 3.0.5 - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-retry': 3.0.15 - '@smithy/middleware-serde': 3.0.3 - '@smithy/middleware-stack': 3.0.3 - '@smithy/node-config-provider': 3.1.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 + '@smithy/config-resolver': 3.0.8 + '@smithy/core': 2.4.5 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/hash-node': 3.0.6 + '@smithy/invalid-dependency': 3.0.6 + '@smithy/middleware-content-length': 3.0.8 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-retry': 3.0.20 + '@smithy/middleware-serde': 3.0.6 + '@smithy/middleware-stack': 3.0.6 + '@smithy/node-config-provider': 3.1.7 + '@smithy/node-http-handler': 3.2.3 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.15 - '@smithy/util-defaults-mode-node': 3.0.15 - '@smithy/util-endpoints': 2.0.5 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.3 + '@smithy/util-defaults-mode-browser': 3.0.20 + '@smithy/util-defaults-mode-node': 3.0.20 + '@smithy/util-endpoints': 2.1.2 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-retry': 3.0.6 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.645.0': + '@aws-sdk/client-sso@3.654.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.635.0 - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.645.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.645.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.5 - '@smithy/core': 2.4.0 - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/hash-node': 3.0.3 - '@smithy/invalid-dependency': 3.0.3 - '@smithy/middleware-content-length': 3.0.5 - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-retry': 3.0.15 - '@smithy/middleware-serde': 3.0.3 - '@smithy/middleware-stack': 3.0.3 - '@smithy/node-config-provider': 3.1.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 + '@smithy/config-resolver': 3.0.8 + '@smithy/core': 2.4.5 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/hash-node': 3.0.6 + '@smithy/invalid-dependency': 3.0.6 + '@smithy/middleware-content-length': 3.0.8 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-retry': 3.0.20 + '@smithy/middleware-serde': 3.0.6 + '@smithy/middleware-stack': 3.0.6 + '@smithy/node-config-provider': 3.1.7 + '@smithy/node-http-handler': 3.2.3 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.15 - '@smithy/util-defaults-mode-node': 3.0.15 - '@smithy/util-endpoints': 2.0.5 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.3 + '@smithy/util-defaults-mode-browser': 3.0.20 + '@smithy/util-defaults-mode-node': 3.0.20 + '@smithy/util-endpoints': 2.1.2 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-retry': 3.0.6 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.645.0': + '@aws-sdk/client-sts@3.654.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/middleware-host-header': 3.620.0 - '@aws-sdk/middleware-logger': 3.609.0 - '@aws-sdk/middleware-recursion-detection': 3.620.0 - '@aws-sdk/middleware-user-agent': 3.645.0 - '@aws-sdk/region-config-resolver': 3.614.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.645.0 - '@aws-sdk/util-user-agent-browser': 3.609.0 - '@aws-sdk/util-user-agent-node': 3.614.0 - '@smithy/config-resolver': 3.0.5 - '@smithy/core': 2.4.0 - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/hash-node': 3.0.3 - '@smithy/invalid-dependency': 3.0.3 - '@smithy/middleware-content-length': 3.0.5 - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-retry': 3.0.15 - '@smithy/middleware-serde': 3.0.3 - '@smithy/middleware-stack': 3.0.3 - '@smithy/node-config-provider': 3.1.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 + '@smithy/config-resolver': 3.0.8 + '@smithy/core': 2.4.5 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/hash-node': 3.0.6 + '@smithy/invalid-dependency': 3.0.6 + '@smithy/middleware-content-length': 3.0.8 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-retry': 3.0.20 + '@smithy/middleware-serde': 3.0.6 + '@smithy/middleware-stack': 3.0.6 + '@smithy/node-config-provider': 3.1.7 + '@smithy/node-http-handler': 3.2.3 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.15 - '@smithy/util-defaults-mode-node': 3.0.15 - '@smithy/util-endpoints': 2.0.5 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.3 + '@smithy/util-defaults-mode-browser': 3.0.20 + '@smithy/util-defaults-mode-node': 3.0.20 + '@smithy/util-endpoints': 2.1.2 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-retry': 3.0.6 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.635.0': + '@aws-sdk/core@3.654.0': dependencies: - '@smithy/core': 2.4.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/property-provider': 3.1.3 - '@smithy/protocol-http': 4.1.0 - '@smithy/signature-v4': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/util-middleware': 3.0.3 + '@smithy/core': 2.4.5 + '@smithy/node-config-provider': 3.1.7 + '@smithy/property-provider': 3.1.6 + '@smithy/protocol-http': 4.1.3 + '@smithy/signature-v4': 4.1.4 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/util-middleware': 3.0.6 fast-xml-parser: 4.4.1 tslib: 2.6.2 - '@aws-sdk/credential-provider-env@3.620.1': + '@aws-sdk/credential-provider-env@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.3 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/property-provider': 3.1.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/credential-provider-http@3.635.0': + '@aws-sdk/credential-provider-http@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/property-provider': 3.1.3 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/util-stream': 3.1.3 + '@aws-sdk/types': 3.654.0 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/node-http-handler': 3.2.3 + '@smithy/property-provider': 3.1.6 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/util-stream': 3.1.8 tslib: 2.6.2 - '@aws-sdk/credential-provider-ini@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': + '@aws-sdk/credential-provider-ini@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/client-sts': 3.645.0 - '@aws-sdk/credential-provider-env': 3.620.1 - '@aws-sdk/credential-provider-http': 3.635.0 - '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/types': 3.609.0 - '@smithy/credential-provider-imds': 3.2.0 - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/credential-provider-env': 3.654.0 + '@aws-sdk/credential-provider-http': 3.654.0 + '@aws-sdk/credential-provider-process': 3.654.0 + '@aws-sdk/credential-provider-sso': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 + '@smithy/credential-provider-imds': 3.2.3 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': + '@aws-sdk/credential-provider-node@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/credential-provider-env': 3.620.1 - '@aws-sdk/credential-provider-http': 3.635.0 - '@aws-sdk/credential-provider-ini': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/credential-provider-process': 3.620.1 - '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) - '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/types': 3.609.0 - '@smithy/credential-provider-imds': 3.2.0 - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/credential-provider-env': 3.654.0 + '@aws-sdk/credential-provider-http': 3.654.0 + '@aws-sdk/credential-provider-ini': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/credential-provider-process': 3.654.0 + '@aws-sdk/credential-provider-sso': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 + '@smithy/credential-provider-imds': 3.2.3 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.620.1': + '@aws-sdk/credential-provider-process@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/credential-provider-sso@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))': + '@aws-sdk/credential-provider-sso@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))': dependencies: - '@aws-sdk/client-sso': 3.645.0 - '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/client-sso': 3.654.0 + '@aws-sdk/token-providers': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/types': 3.654.0 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.645.0)': + '@aws-sdk/credential-provider-web-identity@3.654.0(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/client-sts': 3.645.0 - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.3 - '@smithy/types': 3.3.0 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@smithy/property-provider': 3.1.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-bucket-endpoint@3.620.0': + '@aws-sdk/middleware-bucket-endpoint@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 '@smithy/util-config-provider': 3.0.0 tslib: 2.6.2 - '@aws-sdk/middleware-expect-continue@3.620.0': + '@aws-sdk/middleware-expect-continue@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-flexible-checksums@3.620.0': + '@aws-sdk/middleware-flexible-checksums@3.654.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/types': 3.654.0 '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 + '@smithy/util-middleware': 3.0.6 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@aws-sdk/middleware-host-header@3.620.0': + '@aws-sdk/middleware-host-header@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-location-constraint@3.609.0': + '@aws-sdk/middleware-location-constraint@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-logger@3.609.0': + '@aws-sdk/middleware-logger@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-recursion-detection@3.620.0': + '@aws-sdk/middleware-recursion-detection@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-sdk-s3@3.635.0': + '@aws-sdk/middleware-sdk-s3@3.654.0': dependencies: - '@aws-sdk/core': 3.635.0 - '@aws-sdk/types': 3.609.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/core': 2.4.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/signature-v4': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 + '@smithy/core': 2.4.5 + '@smithy/node-config-provider': 3.1.7 + '@smithy/protocol-http': 4.1.3 + '@smithy/signature-v4': 4.1.4 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-stream': 3.1.3 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-stream': 3.1.8 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@aws-sdk/middleware-ssec@3.609.0': + '@aws-sdk/middleware-ssec@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/middleware-user-agent@3.645.0': + '@aws-sdk/middleware-user-agent@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-endpoints': 3.645.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/region-config-resolver@3.614.0': + '@aws-sdk/region-config-resolver@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/types': 3.4.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.3 + '@smithy/util-middleware': 3.0.6 tslib: 2.6.2 - '@aws-sdk/s3-request-presigner@3.645.0': + '@aws-sdk/s3-request-presigner@3.654.0': dependencies: - '@aws-sdk/signature-v4-multi-region': 3.635.0 - '@aws-sdk/types': 3.609.0 - '@aws-sdk/util-format-url': 3.609.0 - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 + '@aws-sdk/signature-v4-multi-region': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-format-url': 3.654.0 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/signature-v4-multi-region@3.635.0': + '@aws-sdk/signature-v4-multi-region@3.654.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.635.0 - '@aws-sdk/types': 3.609.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/signature-v4': 4.1.0 - '@smithy/types': 3.3.0 + '@aws-sdk/middleware-sdk-s3': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/signature-v4': 4.1.4 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))': + '@aws-sdk/token-providers@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) - '@aws-sdk/types': 3.609.0 - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/types@3.609.0': + '@aws-sdk/types@3.654.0': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@aws-sdk/util-arn-parser@3.568.0': dependencies: tslib: 2.6.2 - '@aws-sdk/util-endpoints@3.645.0': + '@aws-sdk/util-endpoints@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.3.0 - '@smithy/util-endpoints': 2.0.5 + '@aws-sdk/types': 3.654.0 + '@smithy/types': 3.4.2 + '@smithy/util-endpoints': 2.1.2 tslib: 2.6.2 - '@aws-sdk/util-format-url@3.609.0': + '@aws-sdk/util-format-url@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/querystring-builder': 3.0.3 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/querystring-builder': 3.0.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@aws-sdk/util-locate-window@3.568.0': dependencies: tslib: 2.6.2 - '@aws-sdk/util-user-agent-browser@3.609.0': + '@aws-sdk/util-user-agent-browser@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/types': 3.4.2 bowser: 2.11.0 tslib: 2.6.2 - '@aws-sdk/util-user-agent-node@3.614.0': + '@aws-sdk/util-user-agent-node@3.654.0': dependencies: - '@aws-sdk/types': 3.609.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/types': 3.3.0 + '@aws-sdk/types': 3.654.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@aws-sdk/xml-builder@3.609.0': + '@aws-sdk/xml-builder@3.654.0': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@babel/code-frame@7.24.2': @@ -5448,7 +5425,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -5461,14 +5438,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.5.4) + jest-config: 29.7.0(@types/node@22.5.5) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -5493,7 +5470,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -5511,7 +5488,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -5533,7 +5510,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -5603,7 +5580,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.4 + '@types/node': 22.5.5 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -5624,44 +5601,44 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@next/bundle-analyzer@14.2.7': + '@next/bundle-analyzer@14.2.13': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@14.2.7': {} + '@next/env@14.2.13': {} - '@next/eslint-plugin-next@14.2.7': + '@next/eslint-plugin-next@14.2.13': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.7': + '@next/swc-darwin-arm64@14.2.13': optional: true - '@next/swc-darwin-x64@14.2.7': + '@next/swc-darwin-x64@14.2.13': optional: true - '@next/swc-linux-arm64-gnu@14.2.7': + '@next/swc-linux-arm64-gnu@14.2.13': optional: true - '@next/swc-linux-arm64-musl@14.2.7': + '@next/swc-linux-arm64-musl@14.2.13': optional: true - '@next/swc-linux-x64-gnu@14.2.7': + '@next/swc-linux-x64-gnu@14.2.13': optional: true - '@next/swc-linux-x64-musl@14.2.7': + '@next/swc-linux-x64-musl@14.2.13': optional: true - '@next/swc-win32-arm64-msvc@14.2.7': + '@next/swc-win32-arm64-msvc@14.2.13': optional: true - '@next/swc-win32-ia32-msvc@14.2.7': + '@next/swc-win32-ia32-msvc@14.2.13': optional: true - '@next/swc-win32-x64-msvc@14.2.7': + '@next/swc-win32-x64-msvc@14.2.13': optional: true '@nodelib/fs.scandir@2.1.5': @@ -5691,380 +5668,380 @@ snapshots: '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-context@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-context@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-context@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.8)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll: 2.5.5(@types/react@18.3.8)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-id@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-id@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.7(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll: 2.5.7(@types/react@18.3.8)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.8)(react@18.3.1) '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 - '@radix-ui/react-slot@1.0.2(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-slot@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.8)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.5)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.8)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.5)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.8)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@radix-ui/rect@1.1.0': {} @@ -6080,9 +6057,9 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@3.1.1': + '@smithy/abort-controller@3.1.4': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@smithy/chunked-blob-reader-native@3.0.0': @@ -6094,96 +6071,96 @@ snapshots: dependencies: tslib: 2.6.2 - '@smithy/config-resolver@3.0.5': + '@smithy/config-resolver@3.0.8': dependencies: - '@smithy/node-config-provider': 3.1.4 - '@smithy/types': 3.3.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/types': 3.4.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.3 + '@smithy/util-middleware': 3.0.6 tslib: 2.6.2 - '@smithy/core@2.4.0': + '@smithy/core@2.4.5': dependencies: - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-retry': 3.0.15 - '@smithy/middleware-serde': 3.0.3 - '@smithy/protocol-http': 4.1.0 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-retry': 3.0.20 + '@smithy/middleware-serde': 3.0.6 + '@smithy/protocol-http': 4.1.3 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-middleware': 3.0.3 + '@smithy/util-middleware': 3.0.6 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@smithy/credential-provider-imds@3.2.0': + '@smithy/credential-provider-imds@3.2.3': dependencies: - '@smithy/node-config-provider': 3.1.4 - '@smithy/property-provider': 3.1.3 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 + '@smithy/node-config-provider': 3.1.7 + '@smithy/property-provider': 3.1.6 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 tslib: 2.6.2 - '@smithy/eventstream-codec@3.1.2': + '@smithy/eventstream-codec@3.1.5': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 '@smithy/util-hex-encoding': 3.0.0 tslib: 2.6.2 - '@smithy/eventstream-serde-browser@3.0.6': + '@smithy/eventstream-serde-browser@3.0.9': dependencies: - '@smithy/eventstream-serde-universal': 3.0.5 - '@smithy/types': 3.3.0 + '@smithy/eventstream-serde-universal': 3.0.8 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/eventstream-serde-config-resolver@3.0.3': + '@smithy/eventstream-serde-config-resolver@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/eventstream-serde-node@3.0.5': + '@smithy/eventstream-serde-node@3.0.8': dependencies: - '@smithy/eventstream-serde-universal': 3.0.5 - '@smithy/types': 3.3.0 + '@smithy/eventstream-serde-universal': 3.0.8 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/eventstream-serde-universal@3.0.5': + '@smithy/eventstream-serde-universal@3.0.8': dependencies: - '@smithy/eventstream-codec': 3.1.2 - '@smithy/types': 3.3.0 + '@smithy/eventstream-codec': 3.1.5 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/fetch-http-handler@3.2.4': + '@smithy/fetch-http-handler@3.2.8': dependencies: - '@smithy/protocol-http': 4.1.0 - '@smithy/querystring-builder': 3.0.3 - '@smithy/types': 3.3.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/querystring-builder': 3.0.6 + '@smithy/types': 3.4.2 '@smithy/util-base64': 3.0.0 tslib: 2.6.2 - '@smithy/hash-blob-browser@3.1.2': + '@smithy/hash-blob-browser@3.1.5': dependencies: '@smithy/chunked-blob-reader': 3.0.0 '@smithy/chunked-blob-reader-native': 3.0.0 - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/hash-node@3.0.3': + '@smithy/hash-node@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@smithy/hash-stream-node@3.1.2': + '@smithy/hash-stream-node@3.1.5': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@smithy/invalid-dependency@3.0.3': + '@smithy/invalid-dependency@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@smithy/is-array-buffer@2.2.0': @@ -6194,123 +6171,123 @@ snapshots: dependencies: tslib: 2.6.2 - '@smithy/md5-js@3.0.3': + '@smithy/md5-js@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@smithy/middleware-content-length@3.0.5': + '@smithy/middleware-content-length@3.0.8': dependencies: - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/middleware-endpoint@3.1.0': + '@smithy/middleware-endpoint@3.1.3': dependencies: - '@smithy/middleware-serde': 3.0.3 - '@smithy/node-config-provider': 3.1.4 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 - '@smithy/util-middleware': 3.0.3 + '@smithy/middleware-serde': 3.0.6 + '@smithy/node-config-provider': 3.1.7 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 + '@smithy/url-parser': 3.0.6 + '@smithy/util-middleware': 3.0.6 tslib: 2.6.2 - '@smithy/middleware-retry@3.0.15': + '@smithy/middleware-retry@3.0.20': dependencies: - '@smithy/node-config-provider': 3.1.4 - '@smithy/protocol-http': 4.1.0 - '@smithy/service-error-classification': 3.0.3 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.3 + '@smithy/node-config-provider': 3.1.7 + '@smithy/protocol-http': 4.1.3 + '@smithy/service-error-classification': 3.0.6 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 + '@smithy/util-middleware': 3.0.6 + '@smithy/util-retry': 3.0.6 tslib: 2.6.2 uuid: 9.0.1 - '@smithy/middleware-serde@3.0.3': + '@smithy/middleware-serde@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/middleware-stack@3.0.3': + '@smithy/middleware-stack@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/node-config-provider@3.1.4': + '@smithy/node-config-provider@3.1.7': dependencies: - '@smithy/property-provider': 3.1.3 - '@smithy/shared-ini-file-loader': 3.1.4 - '@smithy/types': 3.3.0 + '@smithy/property-provider': 3.1.6 + '@smithy/shared-ini-file-loader': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/node-http-handler@3.1.4': + '@smithy/node-http-handler@3.2.3': dependencies: - '@smithy/abort-controller': 3.1.1 - '@smithy/protocol-http': 4.1.0 - '@smithy/querystring-builder': 3.0.3 - '@smithy/types': 3.3.0 + '@smithy/abort-controller': 3.1.4 + '@smithy/protocol-http': 4.1.3 + '@smithy/querystring-builder': 3.0.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/property-provider@3.1.3': + '@smithy/property-provider@3.1.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/protocol-http@4.1.0': + '@smithy/protocol-http@4.1.3': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/querystring-builder@3.0.3': + '@smithy/querystring-builder@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 '@smithy/util-uri-escape': 3.0.0 tslib: 2.6.2 - '@smithy/querystring-parser@3.0.3': + '@smithy/querystring-parser@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/service-error-classification@3.0.3': + '@smithy/service-error-classification@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 - '@smithy/shared-ini-file-loader@3.1.4': + '@smithy/shared-ini-file-loader@3.1.7': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/signature-v4@4.1.0': + '@smithy/signature-v4@4.1.4': dependencies: '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-middleware': 3.0.3 + '@smithy/util-middleware': 3.0.6 '@smithy/util-uri-escape': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 - '@smithy/smithy-client@3.2.0': + '@smithy/smithy-client@3.3.4': dependencies: - '@smithy/middleware-endpoint': 3.1.0 - '@smithy/middleware-stack': 3.0.3 - '@smithy/protocol-http': 4.1.0 - '@smithy/types': 3.3.0 - '@smithy/util-stream': 3.1.3 + '@smithy/middleware-endpoint': 3.1.3 + '@smithy/middleware-stack': 3.0.6 + '@smithy/protocol-http': 4.1.3 + '@smithy/types': 3.4.2 + '@smithy/util-stream': 3.1.8 tslib: 2.6.2 - '@smithy/types@3.3.0': + '@smithy/types@3.4.2': dependencies: tslib: 2.6.2 - '@smithy/url-parser@3.0.3': + '@smithy/url-parser@3.0.6': dependencies: - '@smithy/querystring-parser': 3.0.3 - '@smithy/types': 3.3.0 + '@smithy/querystring-parser': 3.0.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@smithy/util-base64@3.0.0': @@ -6341,50 +6318,50 @@ snapshots: dependencies: tslib: 2.6.2 - '@smithy/util-defaults-mode-browser@3.0.15': + '@smithy/util-defaults-mode-browser@3.0.20': dependencies: - '@smithy/property-provider': 3.1.3 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 + '@smithy/property-provider': 3.1.6 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 bowser: 2.11.0 tslib: 2.6.2 - '@smithy/util-defaults-mode-node@3.0.15': + '@smithy/util-defaults-mode-node@3.0.20': dependencies: - '@smithy/config-resolver': 3.0.5 - '@smithy/credential-provider-imds': 3.2.0 - '@smithy/node-config-provider': 3.1.4 - '@smithy/property-provider': 3.1.3 - '@smithy/smithy-client': 3.2.0 - '@smithy/types': 3.3.0 + '@smithy/config-resolver': 3.0.8 + '@smithy/credential-provider-imds': 3.2.3 + '@smithy/node-config-provider': 3.1.7 + '@smithy/property-provider': 3.1.6 + '@smithy/smithy-client': 3.3.4 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/util-endpoints@2.0.5': + '@smithy/util-endpoints@2.1.2': dependencies: - '@smithy/node-config-provider': 3.1.4 - '@smithy/types': 3.3.0 + '@smithy/node-config-provider': 3.1.7 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@smithy/util-hex-encoding@3.0.0': dependencies: tslib: 2.6.2 - '@smithy/util-middleware@3.0.3': + '@smithy/util-middleware@3.0.6': dependencies: - '@smithy/types': 3.3.0 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/util-retry@3.0.3': + '@smithy/util-retry@3.0.6': dependencies: - '@smithy/service-error-classification': 3.0.3 - '@smithy/types': 3.3.0 + '@smithy/service-error-classification': 3.0.6 + '@smithy/types': 3.4.2 tslib: 2.6.2 - '@smithy/util-stream@3.1.3': + '@smithy/util-stream@3.1.8': dependencies: - '@smithy/fetch-http-handler': 3.2.4 - '@smithy/node-http-handler': 3.1.4 - '@smithy/types': 3.3.0 + '@smithy/fetch-http-handler': 3.2.8 + '@smithy/node-http-handler': 3.2.3 + '@smithy/types': 3.4.2 '@smithy/util-base64': 3.0.0 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-hex-encoding': 3.0.0 @@ -6405,10 +6382,10 @@ snapshots: '@smithy/util-buffer-from': 3.0.0 tslib: 2.6.2 - '@smithy/util-waiter@3.1.2': + '@smithy/util-waiter@3.1.5': dependencies: - '@smithy/abort-controller': 3.1.1 - '@smithy/types': 3.3.0 + '@smithy/abort-controller': 3.1.4 + '@smithy/types': 3.4.2 tslib: 2.6.2 '@swc/counter@0.1.3': {} @@ -6418,14 +6395,14 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.6.2 - '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.10)': + '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.12)': dependencies: - tailwindcss: 3.4.10 + tailwindcss: 3.4.12 - '@tailwindcss/forms@0.5.9(tailwindcss@3.4.10)': + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.12)': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.10 + tailwindcss: 3.4.12 '@testing-library/dom@10.1.0': dependencies: @@ -6448,14 +6425,14 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@testing-library/dom': 10.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 '@types/react-dom': 18.3.0 '@tootallnate/once@2.0.0': {} @@ -6491,7 +6468,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 '@types/istanbul-lib-coverage@2.0.6': {} @@ -6503,26 +6480,26 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + '@types/jest@29.5.13': dependencies: expect: 29.7.0 pretty-format: 29.7.0 '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 '@types/json5@0.0.29': {} - '@types/node@22.5.4': + '@types/node@22.5.5': dependencies: undici-types: 6.19.6 - '@types/pg@8.11.8': + '@types/pg@8.11.10': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 pg-protocol: 1.6.1 pg-types: 4.0.2 @@ -6530,9 +6507,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - '@types/react@18.3.5': + '@types/react@18.3.8': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -6547,47 +6524,34 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.6.2) '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/type-utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/type-utils': 7.17.0(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.17.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.17.0 debug: 4.3.4 eslint: 8.57.0 optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -6596,28 +6560,21 @@ snapshots: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 - '@typescript-eslint/scope-manager@7.2.0': + '@typescript-eslint/type-utils@7.17.0(eslint@8.57.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 - - '@typescript-eslint/type-utils@7.17.0(eslint@8.57.0)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2) + '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.6.2) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.17.0': {} - '@typescript-eslint/types@7.2.0': {} - - '@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@7.17.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 @@ -6626,33 +6583,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.17.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/utils@7.17.0(eslint@8.57.0)(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -6663,18 +6605,13 @@ snapshots: '@typescript-eslint/types': 7.17.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.2.0': - dependencies: - '@typescript-eslint/types': 7.2.0 - eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} '@upstash/core-analytics@0.0.10': dependencies: '@upstash/redis': 1.31.3 - '@upstash/ratelimit@2.0.2': + '@upstash/ratelimit@2.0.3': dependencies: '@upstash/core-analytics': 0.0.10 @@ -6682,14 +6619,14 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.3.1(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.3.1(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - '@vercel/blob@0.23.4': + '@vercel/blob@0.24.0': dependencies: async-retry: 1.3.3 bytes: 3.1.2 @@ -6701,12 +6638,12 @@ snapshots: dependencies: '@upstash/redis': 1.31.3 - '@vercel/speed-insights@1.0.12(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))': + '@vercel/speed-insights@1.0.12(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(svelte@4.2.17)(vue@3.4.27(typescript@5.6.2))': optionalDependencies: - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 svelte: 4.2.17 - vue: 3.4.27(typescript@5.5.4) + vue: 3.4.27(typescript@5.6.2) '@vue/compiler-core@3.4.27': dependencies: @@ -6714,7 +6651,7 @@ snapshots: '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.2.0 + source-map-js: 1.2.1 '@vue/compiler-dom@3.4.27': dependencies: @@ -6730,8 +6667,8 @@ snapshots: '@vue/shared': 3.4.27 estree-walker: 2.0.2 magic-string: 0.30.10 - postcss: 8.4.45 - source-map-js: 1.2.0 + postcss: 8.4.47 + source-map-js: 1.2.1 '@vue/compiler-ssr@3.4.27': dependencies: @@ -6753,11 +6690,11 @@ snapshots: '@vue/shared': 3.4.27 csstype: 3.1.3 - '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.5.4))': + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.6.2))': dependencies: '@vue/compiler-ssr': 3.4.27 '@vue/shared': 3.4.27 - vue: 3.4.27(typescript@5.5.4) + vue: 3.4.27(typescript@5.6.2) '@vue/shared@3.4.27': {} @@ -6782,15 +6719,15 @@ snapshots: transitivePeerDependencies: - supports-color - ai@3.3.27(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.5.4))(zod@3.23.8): + ai@3.4.0(react@18.3.1)(solid-js@1.8.17)(sswr@2.1.0(svelte@4.2.17))(svelte@4.2.17)(vue@3.4.27(typescript@5.6.2))(zod@3.23.8): dependencies: '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8) - '@ai-sdk/react': 0.0.55(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.44(solid-js@1.8.17)(zod@3.23.8) - '@ai-sdk/svelte': 0.0.46(svelte@4.2.17)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.41(zod@3.23.8) - '@ai-sdk/vue': 0.0.46(vue@3.4.27(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/react': 0.0.59(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.47(solid-js@1.8.17)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.49(svelte@4.2.17)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + '@ai-sdk/vue': 0.0.51(vue@3.4.27(typescript@5.6.2))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6939,14 +6876,14 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.4.45): + autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.23.3 caniuse-lite: 1.0.30001651 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.45 + postcss: 8.4.47 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -7133,10 +7070,10 @@ snapshots: clsx@2.1.1: {} - cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -7191,13 +7128,13 @@ snapshots: cookie@0.6.0: {} - create-jest@29.7.0(@types/node@22.5.4): + create-jest@29.7.0(@types/node@22.5.5): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.5.4) + jest-config: 29.7.0(@types/node@22.5.5) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -7217,7 +7154,7 @@ snapshots: css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css.escape@1.5.1: {} @@ -7259,7 +7196,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - date-fns@3.6.0: {} + date-fns@4.1.0: {} debounce@1.2.1: {} @@ -7462,20 +7399,21 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@14.2.7(eslint@8.57.0)(typescript@5.5.4): + eslint-config-next@14.2.13(eslint@8.57.0)(typescript@5.6.2): dependencies: - '@next/eslint-plugin-next': 14.2.7 + '@next/eslint-plugin-next': 14.2.13 '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color @@ -7488,13 +7426,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.4 enhanced-resolve: 5.16.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -7505,28 +7443,18 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -7536,7 +7464,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -7547,7 +7475,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -7770,7 +7698,7 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.5.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: tslib: 2.6.2 optionalDependencies: @@ -8155,7 +8083,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -8175,16 +8103,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.5.4): + jest-cli@29.7.0(@types/node@22.5.5): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.4) + create-jest: 29.7.0(@types/node@22.5.5) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.5.4) + jest-config: 29.7.0(@types/node@22.5.5) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8194,7 +8122,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.5.4): + jest-config@29.7.0(@types/node@22.5.5): dependencies: '@babel/core': 7.24.5 '@jest/test-sequencer': 29.7.0 @@ -8219,7 +8147,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8249,7 +8177,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -8263,7 +8191,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8273,7 +8201,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.5.4 + '@types/node': 22.5.5 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8312,7 +8240,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -8347,7 +8275,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -8375,7 +8303,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 @@ -8421,7 +8349,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8440,7 +8368,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.4 + '@types/node': 22.5.5 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -8449,17 +8377,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.5.4): + jest@29.7.0(@types/node@22.5.5): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.5.4) + jest-cli: 29.7.0(@types/node@22.5.5) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -8637,10 +8565,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 @@ -8669,10 +8593,10 @@ snapshots: natural-compare@1.4.0: {} - next-auth@5.0.0-beta.19(next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - '@auth/core': 0.32.0 - next: 14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@auth/core': 0.35.0 + next: 14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -8680,9 +8604,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.7(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.13(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.7 + '@next/env': 14.2.13 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001651 @@ -8692,15 +8616,15 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.7 - '@next/swc-darwin-x64': 14.2.7 - '@next/swc-linux-arm64-gnu': 14.2.7 - '@next/swc-linux-arm64-musl': 14.2.7 - '@next/swc-linux-x64-gnu': 14.2.7 - '@next/swc-linux-x64-musl': 14.2.7 - '@next/swc-win32-arm64-msvc': 14.2.7 - '@next/swc-win32-ia32-msvc': 14.2.7 - '@next/swc-win32-x64-msvc': 14.2.7 + '@next/swc-darwin-arm64': 14.2.13 + '@next/swc-darwin-x64': 14.2.13 + '@next/swc-linux-arm64-gnu': 14.2.13 + '@next/swc-linux-arm64-musl': 14.2.13 + '@next/swc-linux-x64-gnu': 14.2.13 + '@next/swc-linux-x64-musl': 14.2.13 + '@next/swc-win32-arm64-msvc': 14.2.13 + '@next/swc-win32-ia32-msvc': 14.2.13 + '@next/swc-win32-x64-msvc': 14.2.13 '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' @@ -8848,18 +8772,20 @@ snapshots: pg-cloudflare@1.1.1: optional: true - pg-connection-string@2.6.4: {} + pg-connection-string@2.7.0: {} pg-int8@1.0.1: {} pg-numeric@1.0.2: {} - pg-pool@3.6.2(pg@8.12.0): + pg-pool@3.7.0(pg@8.13.0): dependencies: - pg: 8.12.0 + pg: 8.13.0 pg-protocol@1.6.1: {} + pg-protocol@1.7.0: {} + pg-types@2.2.0: dependencies: pg-int8: 1.0.1 @@ -8878,11 +8804,11 @@ snapshots: postgres-interval: 3.0.0 postgres-range: 1.1.4 - pg@8.12.0: + pg@8.13.0: dependencies: - pg-connection-string: 2.6.4 - pg-pool: 3.6.2(pg@8.12.0) - pg-protocol: 1.6.1 + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.0) + pg-protocol: 1.7.0 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -8894,6 +8820,8 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.0: {} + picomatch@2.3.1: {} pify@2.3.0: {} @@ -8906,28 +8834,28 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.45): + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.45): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.45 + postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.45): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.1 yaml: 2.4.2 optionalDependencies: - postcss: 8.4.45 + postcss: 8.4.47 - postcss-nested@6.0.1(postcss@8.4.45): + postcss-nested@6.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-selector-parser: 6.0.16 postcss-selector-parser@6.0.16: @@ -8943,11 +8871,11 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.45: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 postgres-array@2.0.0: {} @@ -9033,44 +8961,44 @@ snapshots: react-is@18.3.1: {} - react-remove-scroll-bar@2.3.6(@types/react@18.3.5)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.8)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.8)(react@18.3.1) tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - react-remove-scroll@2.5.5(@types/react@18.3.5)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.8)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.5)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.8)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.8)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.5)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.5)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.8)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.8)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - react-remove-scroll@2.5.7(@types/react@18.3.5)(react@18.3.1): + react-remove-scroll@2.5.7(@types/react@18.3.8)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.5)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.8)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.8)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.5)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.5)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.8)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.8)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 - react-style-singleton@2.2.1(@types/react@18.3.5)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.8)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 react@18.3.1: dependencies: @@ -9278,6 +9206,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -9429,13 +9359,13 @@ snapshots: swrev@4.0.0: {} - swrv@1.0.4(vue@3.4.27(typescript@5.5.4)): + swrv@1.0.4(vue@3.4.27(typescript@5.6.2)): dependencies: - vue: 3.4.27(typescript@5.5.4) + vue: 3.4.27(typescript@5.6.2) symbol-tree@3.2.4: {} - tailwindcss@3.4.10: + tailwindcss@3.4.12: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -9451,11 +9381,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.45 - postcss-import: 15.1.0(postcss@8.4.45) - postcss-js: 4.0.1(postcss@8.4.45) - postcss-load-config: 4.0.2(postcss@8.4.45) - postcss-nested: 6.0.1(postcss@8.4.45) + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.0.1(postcss@8.4.47) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 @@ -9501,9 +9431,9 @@ snapshots: dependencies: punycode: 2.3.1 - ts-api-utils@1.3.0(typescript@5.5.4): + ts-api-utils@1.3.0(typescript@5.6.2): dependencies: - typescript: 5.5.4 + typescript: 5.6.2 ts-exif-parser@0.2.2: dependencies: @@ -9564,7 +9494,7 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript@5.5.4: {} + typescript@5.6.2: {} unbox-primitive@1.0.2: dependencies: @@ -9604,24 +9534,24 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.2(@types/react@18.3.5)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.8)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 use-debounce@10.0.3(react@18.3.1): dependencies: react: 18.3.1 - use-sidecar@1.1.2(@types/react@18.3.5)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.8)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.8 use-sync-external-store@1.2.2(react@18.3.1): dependencies: @@ -9637,15 +9567,15 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vue@3.4.27(typescript@5.5.4): + vue@3.4.27(typescript@5.6.2): dependencies: '@vue/compiler-dom': 3.4.27 '@vue/compiler-sfc': 3.4.27 '@vue/runtime-dom': 3.4.27 - '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.5.4)) + '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.6.2)) '@vue/shared': 3.4.27 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 w3c-xmlserializer@4.0.0: dependencies: From 8be93bee06d18f1286b97b89c12db7a21695dddb Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 21 Sep 2024 13:29:57 -0500 Subject: [PATCH 24/26] Install sanitize-html --- package.json | 2 ++ pnpm-lock.yaml | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/package.json b/package.json index 77ff067b..5778cf25 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@types/pg": "^8.11.10", "@types/react": "18.3.8", "@types/react-dom": "18.3.0", + "@types/sanitize-html": "^2.13.0", "@typescript-eslint/eslint-plugin": "^7.17.0", "@typescript-eslint/parser": "^7.17.0", "@upstash/ratelimit": "^2.0.3", @@ -51,6 +52,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "react-icons": "^5.3.0", + "sanitize-html": "^2.13.0", "sharp": "^0.33.5", "sonner": "^1.5.0", "swr": "^2.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17fecaa5..fdc8ef00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: '@types/react-dom': specifier: 18.3.0 version: 18.3.0 + '@types/sanitize-html': + specifier: ^2.13.0 + version: 2.13.0 '@typescript-eslint/eslint-plugin': specifier: ^7.17.0 version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) @@ -134,6 +137,9 @@ importers: react-icons: specifier: ^5.3.0 version: 5.3.0(react@18.3.1) + sanitize-html: + specifier: ^2.13.0 + version: 2.13.0 sharp: specifier: ^0.33.5 version: 0.33.5 @@ -1677,6 +1683,9 @@ packages: '@types/react@18.3.8': resolution: {integrity: sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==} + '@types/sanitize-html@2.13.0': + resolution: {integrity: sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -2354,11 +2363,24 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2785,6 +2807,9 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -3521,6 +3546,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-srcset@1.0.2: + resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -3897,6 +3925,9 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sanitize-html@2.13.0: + resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -6514,6 +6545,10 @@ snapshots: '@types/prop-types': 15.7.12 csstype: 3.1.3 + '@types/sanitize-html@2.13.0': + dependencies: + htmlparser2: 8.0.2 + '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -7262,10 +7297,28 @@ snapshots: dom-accessibility-api@0.6.3: {} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -7842,6 +7895,13 @@ snapshots: html-escaper@2.0.2: {} + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -8744,6 +8804,8 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-srcset@1.0.2: {} + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -9091,6 +9153,15 @@ snapshots: safer-buffer@2.1.2: {} + sanitize-html@2.13.0: + dependencies: + deepmerge: 4.3.1 + escape-string-regexp: 4.0.0 + htmlparser2: 8.0.2 + is-plain-object: 5.0.0 + parse-srcset: 1.0.2 + postcss: 8.4.47 + sax@1.2.4: {} saxes@6.0.0: From b48697288e518bc8ce12489b8336d1ac130acf0b Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 21 Sep 2024 14:15:36 -0500 Subject: [PATCH 25/26] Allow rich formatting in site about text --- README.md | 4 ++-- src/photo/PhotoGridSidebar.tsx | 14 ++++++++++---- src/utility/html.ts | 12 ++++++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 src/utility/html.ts diff --git a/README.md b/README.md index e4fcdac8..95ffb8a9 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,8 @@ Application behavior can be changed by configuring the following environment var #### Site meta - `NEXT_PUBLIC_SITE_TITLE` (seen in browser tab) -- `NEXT_PUBLIC_SITE_DESCRIPTION` (seen in nav, under title) -- `NEXT_PUBLIC_SITE_ABOUT` (e.g., seen in grid sidebar) +- `NEXT_PUBLIC_SITE_DESCRIPTION` (seen in nav, beneath title) +- `NEXT_PUBLIC_SITE_ABOUT` (seen in grid sidebar—accepted rich formatting tags: ``, ``, ``, ``, ``, `
`) #### Site behavior - `NEXT_PUBLIC_GRID_HOMEPAGE = 1` shows grid layout on homepage diff --git a/src/photo/PhotoGridSidebar.tsx b/src/photo/PhotoGridSidebar.tsx index ed795e15..0d1f7b2c 100644 --- a/src/photo/PhotoGridSidebar.tsx +++ b/src/photo/PhotoGridSidebar.tsx @@ -16,6 +16,8 @@ import { useAppState } from '@/state/AppState'; import { useMemo } from 'react'; import HiddenTag from '@/tag/HiddenTag'; import { SITE_ABOUT } from '@/site/config'; +import { htmlHasBrParagraphBreaks, safelyParseFormattedHTML } from '@/utility/html'; +import { clsx } from 'clsx/lite'; export default function PhotoGridSidebar({ tags, @@ -43,10 +45,14 @@ export default function PhotoGridSidebar({ {SITE_ABOUT && - {SITE_ABOUT} -

]} + className={clsx( + 'max-w-60 normal-case text-main', + htmlHasBrParagraphBreaks(SITE_ABOUT) && 'pb-2', + )} + dangerouslySetInnerHTML={{ + __html: safelyParseFormattedHTML(SITE_ABOUT), + }} + />]} />} {tags.length > 0 && + sanitizeHtml(text, { + allowedTags: ALLOWED_FORMATTING_TAGS, + }); + +// Matches two or more
or
tags in a row +export const htmlHasBrParagraphBreaks = (text: string) => + text.match(/(){2}/i); From bd187da8a531e470aa53b16057313044f589ba8e Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 21 Sep 2024 14:20:24 -0500 Subject: [PATCH 26/26] Add html test coverage --- __tests__/html.test.ts | 17 +++++++++++++++++ src/photo/PhotoGridSidebar.tsx | 4 ++-- src/utility/html.ts | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 __tests__/html.test.ts diff --git a/__tests__/html.test.ts b/__tests__/html.test.ts new file mode 100644 index 00000000..9468d976 --- /dev/null +++ b/__tests__/html.test.ts @@ -0,0 +1,17 @@ +import { htmlHasBrParagraphBreaks, safelyParseFormattedHtml } from '@/utility/html'; +import { parameterize } from '@/utility/string'; + +describe('HTML', () => { + it('safely parses', () => { + expect(safelyParseFormattedHtml('

TEXT

')).toBe('TEXT'); + expect(safelyParseFormattedHtml('TEXT')).toBe('TEXT'); + }); + it('detects br-style paragraph breaks', () => { + expect(htmlHasBrParagraphBreaks('TEXT

')).toBeTruthy(); + expect(htmlHasBrParagraphBreaks('TEXT

')).toBeTruthy(); + expect(htmlHasBrParagraphBreaks('TEXT

')).toBeTruthy(); + expect(htmlHasBrParagraphBreaks('TEXT')).toBeFalsy(); + expect(htmlHasBrParagraphBreaks('TEXT
')).toBeFalsy(); + expect(htmlHasBrParagraphBreaks('TEXT
')).toBeFalsy(); + }); +}); diff --git a/src/photo/PhotoGridSidebar.tsx b/src/photo/PhotoGridSidebar.tsx index 0d1f7b2c..b45dbfac 100644 --- a/src/photo/PhotoGridSidebar.tsx +++ b/src/photo/PhotoGridSidebar.tsx @@ -16,7 +16,7 @@ import { useAppState } from '@/state/AppState'; import { useMemo } from 'react'; import HiddenTag from '@/tag/HiddenTag'; import { SITE_ABOUT } from '@/site/config'; -import { htmlHasBrParagraphBreaks, safelyParseFormattedHTML } from '@/utility/html'; +import { htmlHasBrParagraphBreaks, safelyParseFormattedHtml } from '@/utility/html'; import { clsx } from 'clsx/lite'; export default function PhotoGridSidebar({ @@ -50,7 +50,7 @@ export default function PhotoGridSidebar({ htmlHasBrParagraphBreaks(SITE_ABOUT) && 'pb-2', )} dangerouslySetInnerHTML={{ - __html: safelyParseFormattedHTML(SITE_ABOUT), + __html: safelyParseFormattedHtml(SITE_ABOUT), }} />]} />} diff --git a/src/utility/html.ts b/src/utility/html.ts index 0f3422f7..9f977a44 100644 --- a/src/utility/html.ts +++ b/src/utility/html.ts @@ -2,7 +2,7 @@ import sanitizeHtml from 'sanitize-html'; const ALLOWED_FORMATTING_TAGS = ['b', 'strong', 'i', 'em', 'u', 'br']; -export const safelyParseFormattedHTML = (text: string) => +export const safelyParseFormattedHtml = (text: string) => sanitizeHtml(text, { allowedTags: ALLOWED_FORMATTING_TAGS, });