From beef6fa5e08c6fcfe91d43a6ebd34d7493a34cb3 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 7 Oct 2024 14:34:44 -0400 Subject: [PATCH 01/26] discover list screen working --- src/screens/discover/DiscoverDetailScreen.tsx | 95 ++++++++++++++++--- 1 file changed, 82 insertions(+), 13 deletions(-) diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 2e5a3d60..6aa7c0ed 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useState, useMemo, useCallback, useRef } from 'react'; import { ShowData } from '../../types'; import { actionAdventureHandler, @@ -14,6 +14,14 @@ import { import { ShowCard } from '../../components'; import { useProfileContext } from '../../hooks'; import Typ from '@mui/material/Typography'; +import { OfflineSnackbar } from '../../components'; +import SearchResultCards from '../search_results/SearchResultsCards'; +import { SearchResultsLoader } from '../loaders'; +import SearchResultsHeader from '../search_results/SearchResultsHeader'; +import LoadingIndicator from '../../components/LoadingIndicator'; +import Logger from '../../logger'; +import { useLoaderData } from 'react-router-dom'; +import { usePaginatedData } from '../../hooks'; const PATHS = [ { path: 'trending', title: 'Trending' }, @@ -70,35 +78,96 @@ const requestHandler = async (props: RequestHandlerProps) => { } }; +const LOG = new Logger('SearchResultsScreen'); + +/** + * This loader is mostly built straight from the react-router docs + * https://reactrouter.com/en/main/components/form#get-submissions + * + * @param request | HTTP GET request from the SearchInput component + * @returns {Promise} | the users query + */ +export async function loader({ request }: { request: Request }): Promise { + // get the query parameters from the URL + const url = new URL(request.url); + const query = url.searchParams.get('q')?.trim(); + if (!query) { + LOG.error('No query found!'); + throw new Response('Bad Request', { status: 400 }); + } + return query as string; +} + const DiscoverDetailScreen: React.FC = () => { + const query: string = useLoaderData() as string; const { profile, setProfile } = useProfileContext(); const path = window.location.pathname .match(/\/\w+$/) ?.join() .slice(1); - const [data, setData] = useState(null); const [loading, setLoading] = useState(true); + const storageItem = localStorage.getItem('streamabilityView'); + const initialView = storageItem === 'grid' ? 'grid' : 'list'; + const [viewState, setViewState] = useState<'list' | 'grid'>(initialView); + const [hash, setHash] = useState(1); + const { + data, + setData, + loading: dataLoading, + moreToFetch, + refetch, + } = usePaginatedData({ query: query }); useEffect(() => { if (path) requestHandler({ path: path, setState: setData, setLoading: setLoading }); }, []); - const title = path ? PATHS[PATHS.findIndex((p) => p.path === path)].title : ''; + const observer = useRef(null); + const loadMoreRef = useCallback( + (node: HTMLDivElement) => { + if (dataLoading) return; + if (observer.current) observer.current.disconnect(); + observer.current = new IntersectionObserver((entries) => { + if (entries[0].isIntersecting && moreToFetch) { + refetch(); + } + }); + if (node) observer.current.observe(node); + }, + [dataLoading, moreToFetch, refetch] + ); + + const cards = useMemo(() => { + return ( + + ); + }, [data, hash, viewState, profile]); - // TODO: Create loader #839 + // TODO: Create loader #839r if (loading) return

Loading...

; return ( -
- {title} -
- {data?.map((item, i) => ( - - ))} +
+ +
+ {cards} + {moreToFetch && }{' '} + {/* Show the indicator while more data is available */} +
+
); }; From 407f3e0477c0fe99a36c6c8cdcb908862436e6fa Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Wed, 9 Oct 2024 11:34:00 -0400 Subject: [PATCH 02/26] chore: reusable List and Card screen for result and discover trend views. --- src/screens/DetailScreen.tsx | 51 +++++++++++++++++++ src/screens/discover/DiscoverDetailScreen.tsx | 40 ++++----------- .../search_results/SearchResultsScreen.tsx | 21 +++----- 3 files changed, 70 insertions(+), 42 deletions(-) create mode 100644 src/screens/DetailScreen.tsx diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx new file mode 100644 index 00000000..2c59c8db --- /dev/null +++ b/src/screens/DetailScreen.tsx @@ -0,0 +1,51 @@ +import React from 'react'; +import { ShowData } from '../types'; +import { OfflineSnackbar } from '../components'; +import { SearchResultsHeader } from './search_results'; +import LoadingIndicator from '../components/LoadingIndicator'; + +interface Props { + query: string; + viewState: 'grid' | 'list'; + setViewState: React.Dispatch>; + data: ShowData[] | null; + setData: React.Dispatch>; + setHash: React.Dispatch>; + cards: JSX.Element; + moreToFetch: boolean; + loadMoreRef: (node: HTMLDivElement) => void; +} + +const DetailScreen: React.FC = ({ + query, + viewState, + setViewState, + data, + setData, + setHash, + cards, + moreToFetch, + loadMoreRef, +}) => { + return ( + <> + +
+ {cards} + {moreToFetch && }{' '} + {/* Show the indicator while more data is available */} +
+
+ + + ); +}; + +export default DetailScreen; diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 6aa7c0ed..509b4406 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -11,29 +11,12 @@ import { primeHandler, trendingHandler, } from './discoverRequests'; -import { ShowCard } from '../../components'; import { useProfileContext } from '../../hooks'; -import Typ from '@mui/material/Typography'; -import { OfflineSnackbar } from '../../components'; import SearchResultCards from '../search_results/SearchResultsCards'; -import { SearchResultsLoader } from '../loaders'; -import SearchResultsHeader from '../search_results/SearchResultsHeader'; -import LoadingIndicator from '../../components/LoadingIndicator'; import Logger from '../../logger'; import { useLoaderData } from 'react-router-dom'; import { usePaginatedData } from '../../hooks'; - -const PATHS = [ - { path: 'trending', title: 'Trending' }, - { path: 'best', title: 'Highest Rated' }, - { path: 'new', title: 'Newly Added' }, - { path: 'action', title: 'Action & Adventure' }, - { path: 'comedy', title: 'Comedy' }, - { path: 'horror', title: 'Horror' }, - { path: 'netflix', title: 'Popular on Netflix' }, - { path: 'hulu', title: 'Popular on Hulu' }, - { path: 'prime', title: 'Popular on Prime' }, -]; +import DetailScreen from '../DetailScreen'; interface RequestHandlerProps { path: string; @@ -152,22 +135,21 @@ const DiscoverDetailScreen: React.FC = () => { if (loading) return

Loading...

; return ( -
- + -
- {cards} - {moreToFetch && }{' '} - {/* Show the indicator while more data is available */} -
-
-
); }; diff --git a/src/screens/search_results/SearchResultsScreen.tsx b/src/screens/search_results/SearchResultsScreen.tsx index 31c33be9..c8191776 100644 --- a/src/screens/search_results/SearchResultsScreen.tsx +++ b/src/screens/search_results/SearchResultsScreen.tsx @@ -1,12 +1,11 @@ import React, { useState, useEffect, useMemo, useRef, useCallback } from 'react'; import { useLoaderData } from 'react-router-dom'; -import { EmptySearchResults, OfflineSnackbar } from '../../components'; +import { EmptySearchResults } from '../../components'; import { usePaginatedData, useProfileContext, useWindowSize } from '../../hooks'; import Logger from '../../logger'; import SearchResultCards from './SearchResultsCards'; import { SearchResultsLoader } from '../loaders'; -import SearchResultsHeader from './SearchResultsHeader'; -import LoadingIndicator from '../../components/LoadingIndicator'; +import ToggleDetailScreen from '../DetailScreen'; const LOG = new Logger('SearchResultsScreen'); @@ -94,21 +93,17 @@ const SearchResultsScreen: React.FC = () => { return (
- -
- {cards} - {moreToFetch && }{' '} - {/* Show the indicator while more data is available */} -
-
-
); }; From 12fe217d79502df480d2412f93f43b9babf5b350 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Sun, 13 Oct 2024 16:02:48 -0400 Subject: [PATCH 03/26] chore: add options to disable alpha and result type filtering on result header in the discover detail screen --- src/screens/DetailScreen.tsx | 6 +- src/screens/discover/DiscoverDetailScreen.tsx | 19 ----- .../search_results/SearchResultsHeader.tsx | 77 +++++++++++-------- .../search_results/SearchResultsScreen.tsx | 1 - 4 files changed, 49 insertions(+), 54 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 2c59c8db..98530ca8 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -5,7 +5,6 @@ import { SearchResultsHeader } from './search_results'; import LoadingIndicator from '../components/LoadingIndicator'; interface Props { - query: string; viewState: 'grid' | 'list'; setViewState: React.Dispatch>; data: ShowData[] | null; @@ -17,7 +16,6 @@ interface Props { } const DetailScreen: React.FC = ({ - query, viewState, setViewState, data, @@ -30,12 +28,14 @@ const DetailScreen: React.FC = ({ return ( <>
{cards} diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 509b4406..9f00c9fa 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -63,24 +63,6 @@ const requestHandler = async (props: RequestHandlerProps) => { const LOG = new Logger('SearchResultsScreen'); -/** - * This loader is mostly built straight from the react-router docs - * https://reactrouter.com/en/main/components/form#get-submissions - * - * @param request | HTTP GET request from the SearchInput component - * @returns {Promise} | the users query - */ -export async function loader({ request }: { request: Request }): Promise { - // get the query parameters from the URL - const url = new URL(request.url); - const query = url.searchParams.get('q')?.trim(); - if (!query) { - LOG.error('No query found!'); - throw new Response('Bad Request', { status: 400 }); - } - return query as string; -} - const DiscoverDetailScreen: React.FC = () => { const query: string = useLoaderData() as string; const { profile, setProfile } = useProfileContext(); @@ -140,7 +122,6 @@ const DiscoverDetailScreen: React.FC = () => { data-testid={`discover-details-${path}-screen`} > = ({ setShowDetails, setHash, disableControls = false, + disableAlphabeticOrderFilter = false, + disableResultTypeFilter = false }) => { const [sortState, setSortState] = useState<'alpha' | 'rev' | 'none'>('none'); const [filterState, setFilterState] = useState({ showType: 'none' }); @@ -119,38 +131,41 @@ const SearchResultsHeader: React.FC = ({ Search results for: {query}
- - setFilterState({ showType: 'tv' })} - disabled={disableControls} + {!disableResultTypeFilter && + - - - setFilterState({ showType: 'movie' })} - disabled={disableControls} - > - - - setFilterState({ showType: 'none' })} - disabled={disableControls} - > - - - + setFilterState({ showType: 'tv' })} + disabled={disableControls} + > + + + setFilterState({ showType: 'movie' })} + disabled={disableControls} + > + + + setFilterState({ showType: 'none' })} + disabled={disableControls} + > + + + + } - + {!disableAlphabeticOrderFilter && = ({ - + } { return (
Date: Sun, 13 Oct 2024 16:20:12 -0400 Subject: [PATCH 04/26] chore: run linter --- src/screens/DetailScreen.tsx | 2 +- src/screens/discover/DiscoverDetailScreen.tsx | 3 - .../search_results/SearchResultsHeader.tsx | 114 +++++++++--------- 3 files changed, 59 insertions(+), 60 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 98530ca8..660834a9 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -28,7 +28,7 @@ const DetailScreen: React.FC = ({ return ( <> { } }; -const LOG = new Logger('SearchResultsScreen'); - const DiscoverDetailScreen: React.FC = () => { const query: string = useLoaderData() as string; const { profile, setProfile } = useProfileContext(); diff --git a/src/screens/search_results/SearchResultsHeader.tsx b/src/screens/search_results/SearchResultsHeader.tsx index 0a6abfe8..2d8ac97d 100644 --- a/src/screens/search_results/SearchResultsHeader.tsx +++ b/src/screens/search_results/SearchResultsHeader.tsx @@ -73,7 +73,7 @@ const SearchResultsHeader: React.FC = ({ setHash, disableControls = false, disableAlphabeticOrderFilter = false, - disableResultTypeFilter = false + disableResultTypeFilter = false, }) => { const [sortState, setSortState] = useState<'alpha' | 'rev' | 'none'>('none'); const [filterState, setFilterState] = useState({ showType: 'none' }); @@ -131,7 +131,7 @@ const SearchResultsHeader: React.FC = ({ Search results for: {query}
- {!disableResultTypeFilter && + {!disableResultTypeFilter && ( = ({ - } + )} - {!disableAlphabeticOrderFilter && - setSortState('alpha')} - disabled={disableControls} - > - - - Sort alphabetical ascending - - - - - setSortState('rev')} - disabled={disableControls} - > - - - Sort alphabetical descending - - - - - setSortState('none')} - disabled={disableControls} - > - - - Remove sort - - - - - } + {!disableAlphabeticOrderFilter && ( + + setSortState('alpha')} + disabled={disableControls} + > + + + Sort alphabetical ascending + + + + + setSortState('rev')} + disabled={disableControls} + > + + + Sort alphabetical descending + + + + + setSortState('none')} + disabled={disableControls} + > + + + Remove sort + + + + + + )} Date: Sun, 13 Oct 2024 16:23:57 -0400 Subject: [PATCH 05/26] chore: ran todo-ci --- TODO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 5ca3f6b7..a28605f9 100644 --- a/TODO.md +++ b/TODO.md @@ -12,6 +12,6 @@ | [src/__tests__/screens/DiscoverScreen.test.tsx](src/__tests__/screens/DiscoverScreen.test.tsx#L29) | 29 | #851 Create global sections variable | | [src/screens/auth/LoginScreen.tsx](src/screens/auth/LoginScreen.tsx#L89) | 89 | We could try to get the AuthApiError type and use 'cause' instead | | [src/screens/dashboard/DashboardGalleryScreen.tsx](src/screens/dashboard/DashboardGalleryScreen.tsx#L38) | 38 | If profile does not return after a few seconds, | -| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L38) | 38 | paginate data #838 | -| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L88) | 88 | Create loader #839 | +| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L28) | 28 | paginate data #838 | +| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L113) | 113 | Create loader #839r | | [src/screens/discover/discoverRequests.ts](src/screens/discover/discoverRequests.ts#L54) | 54 | #613 Dynamic date range | From 82786e5a8cec40916d8e3a2ff61586533b9eaf03 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Sun, 13 Oct 2024 16:38:24 -0400 Subject: [PATCH 06/26] chore: fix issue with order filters not showing on search results page --- src/screens/DetailScreen.tsx | 13 ++++++++++--- src/screens/discover/DiscoverDetailScreen.tsx | 3 +++ src/screens/search_results/SearchResultsScreen.tsx | 5 +++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 660834a9..1b7602fc 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -5,6 +5,7 @@ import { SearchResultsHeader } from './search_results'; import LoadingIndicator from '../components/LoadingIndicator'; interface Props { + query: string; viewState: 'grid' | 'list'; setViewState: React.Dispatch>; data: ShowData[] | null; @@ -13,9 +14,13 @@ interface Props { cards: JSX.Element; moreToFetch: boolean; loadMoreRef: (node: HTMLDivElement) => void; + disableAlphabeticOrderFilter?: boolean; + disableResultTypeFilter?: boolean; + } const DetailScreen: React.FC = ({ + query, viewState, setViewState, data, @@ -24,18 +29,20 @@ const DetailScreen: React.FC = ({ cards, moreToFetch, loadMoreRef, + disableAlphabeticOrderFilter, + disableResultTypeFilter }) => { return ( <>
{cards} diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 303509cc..bc21d11f 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -119,6 +119,7 @@ const DiscoverDetailScreen: React.FC = () => { data-testid={`discover-details-${path}-screen`} > { cards={cards} moreToFetch={moreToFetch} loadMoreRef={loadMoreRef} + disableAlphabeticOrderFilter={true} + disableResultTypeFilter={true} />
); diff --git a/src/screens/search_results/SearchResultsScreen.tsx b/src/screens/search_results/SearchResultsScreen.tsx index b539b6d5..a5dda23f 100644 --- a/src/screens/search_results/SearchResultsScreen.tsx +++ b/src/screens/search_results/SearchResultsScreen.tsx @@ -5,7 +5,7 @@ import { usePaginatedData, useProfileContext, useWindowSize } from '../../hooks' import Logger from '../../logger'; import SearchResultCards from './SearchResultsCards'; import { SearchResultsLoader } from '../loaders'; -import ToggleDetailScreen from '../DetailScreen'; +import DetailScreen from '../DetailScreen'; const LOG = new Logger('SearchResultsScreen'); @@ -93,7 +93,8 @@ const SearchResultsScreen: React.FC = () => { return (
- Date: Mon, 14 Oct 2024 08:24:02 -0400 Subject: [PATCH 07/26] chore: add unique key for the discover detail list view --- src/screens/discover/DiscoverDetailScreen.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index bc21d11f..8112e69e 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -68,7 +68,7 @@ const DiscoverDetailScreen: React.FC = () => { ?.join() .slice(1); const [loading, setLoading] = useState(true); - const storageItem = localStorage.getItem('streamabilityView'); + const storageItem = localStorage.getItem('streamabilityDiscoverDetailView'); const initialView = storageItem === 'grid' ? 'grid' : 'list'; const [viewState, setViewState] = useState<'list' | 'grid'>(initialView); const [hash, setHash] = useState(1); @@ -99,6 +99,8 @@ const DiscoverDetailScreen: React.FC = () => { [dataLoading, moreToFetch, refetch] ); + if (!storageItem) localStorage.setItem('streamabilityDiscoverDetailView', initialView); + const cards = useMemo(() => { return ( Date: Mon, 14 Oct 2024 13:16:01 -0400 Subject: [PATCH 08/26] chore: remove pagination from discover detail screen --- src/screens/DetailScreen.tsx | 4 +-- src/screens/discover/DiscoverDetailScreen.tsx | 26 ++----------------- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 1b7602fc..40de0433 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -12,8 +12,8 @@ interface Props { setData: React.Dispatch>; setHash: React.Dispatch>; cards: JSX.Element; - moreToFetch: boolean; - loadMoreRef: (node: HTMLDivElement) => void; + moreToFetch?: boolean; + loadMoreRef?: (node: HTMLDivElement) => void; disableAlphabeticOrderFilter?: boolean; disableResultTypeFilter?: boolean; diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 8112e69e..2eee5432 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -72,33 +72,13 @@ const DiscoverDetailScreen: React.FC = () => { const initialView = storageItem === 'grid' ? 'grid' : 'list'; const [viewState, setViewState] = useState<'list' | 'grid'>(initialView); const [hash, setHash] = useState(1); - const { - data, - setData, - loading: dataLoading, - moreToFetch, - refetch, - } = usePaginatedData({ query: query }); + const [data, setData] = useState(null); useEffect(() => { if (path) requestHandler({ path: path, setState: setData, setLoading: setLoading }); + console.log(requestHandler); }, []); - const observer = useRef(null); - const loadMoreRef = useCallback( - (node: HTMLDivElement) => { - if (dataLoading) return; - if (observer.current) observer.current.disconnect(); - observer.current = new IntersectionObserver((entries) => { - if (entries[0].isIntersecting && moreToFetch) { - refetch(); - } - }); - if (node) observer.current.observe(node); - }, - [dataLoading, moreToFetch, refetch] - ); - if (!storageItem) localStorage.setItem('streamabilityDiscoverDetailView', initialView); const cards = useMemo(() => { @@ -128,8 +108,6 @@ const DiscoverDetailScreen: React.FC = () => { setData={setData} setHash={setHash} cards={cards} - moreToFetch={moreToFetch} - loadMoreRef={loadMoreRef} disableAlphabeticOrderFilter={true} disableResultTypeFilter={true} /> From 0ae78592fc4217055a85e01e12268b78d0a9f843 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 14 Oct 2024 13:30:56 -0400 Subject: [PATCH 09/26] chore: add title bar back discover screen --- src/screens/DetailScreen.tsx | 2 +- src/screens/discover/DiscoverDetailScreen.tsx | 22 +++++++++++++++---- .../search_results/SearchResultsHeader.tsx | 4 ++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 40de0433..22149bd3 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -5,7 +5,7 @@ import { SearchResultsHeader } from './search_results'; import LoadingIndicator from '../components/LoadingIndicator'; interface Props { - query: string; + query?: string; viewState: 'grid' | 'list'; setViewState: React.Dispatch>; data: ShowData[] | null; diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 2eee5432..faa621fb 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState, useMemo, useCallback, useRef } from 'react'; +import { useEffect, useState, useMemo} from 'react'; import { ShowData } from '../../types'; import { actionAdventureHandler, @@ -14,8 +14,20 @@ import { import { useProfileContext } from '../../hooks'; import SearchResultCards from '../search_results/SearchResultsCards'; import { useLoaderData } from 'react-router-dom'; -import { usePaginatedData } from '../../hooks'; import DetailScreen from '../DetailScreen'; +import { Typography } from '@mui/material'; + +const PATHS = [ + { path: 'trending', title: 'Trending' }, + { path: 'best', title: 'Highest Rated' }, + { path: 'new', title: 'Newly Added' }, + { path: 'action', title: 'Action & Adventure' }, + { path: 'comedy', title: 'Comedy' }, + { path: 'horror', title: 'Horror' }, + { path: 'netflix', title: 'Popular on Netflix' }, + { path: 'hulu', title: 'Popular on Hulu' }, + { path: 'prime', title: 'Popular on Prime' }, +]; interface RequestHandlerProps { path: string; @@ -76,9 +88,11 @@ const DiscoverDetailScreen: React.FC = () => { useEffect(() => { if (path) requestHandler({ path: path, setState: setData, setLoading: setLoading }); - console.log(requestHandler); }, []); + + const title = path ? PATHS[PATHS.findIndex((p) => p.path === path)].title : ''; + if (!storageItem) localStorage.setItem('streamabilityDiscoverDetailView', initialView); const cards = useMemo(() => { @@ -100,8 +114,8 @@ const DiscoverDetailScreen: React.FC = () => { className='flex flex-col items-center w-full m-6' data-testid={`discover-details-${path}-screen`} > + {title} = ({ return (
- Search results for: {query} + {query &&

Search results for: {query}

}
{!disableResultTypeFilter && ( From 3af65e829d036a6523212453b9dab9ac26ab2102 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 14 Oct 2024 13:44:55 -0400 Subject: [PATCH 10/26] chore: separate local storage keys for result and discover detail pages --- src/screens/DetailScreen.tsx | 3 +++ src/screens/discover/DiscoverDetailScreen.tsx | 6 ++++-- src/screens/search_results/SearchResultsHeader.tsx | 7 ++++++- src/screens/search_results/SearchResultsScreen.tsx | 6 ++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 22149bd3..810f2081 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -6,6 +6,7 @@ import LoadingIndicator from '../components/LoadingIndicator'; interface Props { query?: string; + viewStateKey: string; viewState: 'grid' | 'list'; setViewState: React.Dispatch>; data: ShowData[] | null; @@ -21,6 +22,7 @@ interface Props { const DetailScreen: React.FC = ({ query, + viewStateKey, viewState, setViewState, data, @@ -36,6 +38,7 @@ const DetailScreen: React.FC = ({ <> { const DiscoverDetailScreen: React.FC = () => { const query: string = useLoaderData() as string; + const viewStateKey: string = 'streamabilityDiscoverDetailView'; const { profile, setProfile } = useProfileContext(); const path = window.location.pathname .match(/\/\w+$/) ?.join() .slice(1); const [loading, setLoading] = useState(true); - const storageItem = localStorage.getItem('streamabilityDiscoverDetailView'); + const storageItem = localStorage.getItem(viewStateKey); const initialView = storageItem === 'grid' ? 'grid' : 'list'; const [viewState, setViewState] = useState<'list' | 'grid'>(initialView); const [hash, setHash] = useState(1); @@ -93,7 +94,7 @@ const DiscoverDetailScreen: React.FC = () => { const title = path ? PATHS[PATHS.findIndex((p) => p.path === path)].title : ''; - if (!storageItem) localStorage.setItem('streamabilityDiscoverDetailView', initialView); + if (!storageItem) localStorage.setItem(viewStateKey, initialView); const cards = useMemo(() => { return ( @@ -116,6 +117,7 @@ const DiscoverDetailScreen: React.FC = () => { > {title} = ({ query, + viewStateKey, viewState, setViewState, setShowDetails, @@ -121,7 +126,7 @@ const SearchResultsHeader: React.FC = ({ const handleViewToggle = (view: 'grid' | 'list') => { setViewState?.(view); - localStorage.setItem('streamabilityView', view); + localStorage.setItem(viewStateKey, view); setHash?.(Math.random()); }; diff --git a/src/screens/search_results/SearchResultsScreen.tsx b/src/screens/search_results/SearchResultsScreen.tsx index a5dda23f..4c01224e 100644 --- a/src/screens/search_results/SearchResultsScreen.tsx +++ b/src/screens/search_results/SearchResultsScreen.tsx @@ -33,9 +33,10 @@ export async function loader({ request }: { request: Request }): Promise */ const SearchResultsScreen: React.FC = () => { const query: string = useLoaderData() as string; + const viewStateKey: string = 'streamabilityView'; const windowSize = useWindowSize(); const { profile, setProfile } = useProfileContext(); - const storageItem = localStorage.getItem('streamabilityView'); + const storageItem = localStorage.getItem(viewStateKey); const initialView = storageItem === 'grid' ? 'grid' : 'list'; const [viewState, setViewState] = useState<'list' | 'grid'>(initialView); const [hash, setHash] = useState(1); @@ -62,7 +63,7 @@ const SearchResultsScreen: React.FC = () => { [dataLoading, moreToFetch, refetch] ); - if (!storageItem) localStorage.setItem('streamabilityView', initialView); + if (!storageItem) localStorage.setItem(viewStateKey, initialView); // default to grid view on mobile useEffect(() => { @@ -95,6 +96,7 @@ const SearchResultsScreen: React.FC = () => {
Date: Mon, 14 Oct 2024 13:47:28 -0400 Subject: [PATCH 11/26] chore: ran lint-fix and resolved errors --- src/screens/DetailScreen.tsx | 3 +-- src/screens/discover/DiscoverDetailScreen.tsx | 5 +---- src/screens/search_results/SearchResultsHeader.tsx | 6 +++++- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/screens/DetailScreen.tsx b/src/screens/DetailScreen.tsx index 810f2081..c012d42f 100644 --- a/src/screens/DetailScreen.tsx +++ b/src/screens/DetailScreen.tsx @@ -17,7 +17,6 @@ interface Props { loadMoreRef?: (node: HTMLDivElement) => void; disableAlphabeticOrderFilter?: boolean; disableResultTypeFilter?: boolean; - } const DetailScreen: React.FC = ({ @@ -32,7 +31,7 @@ const DetailScreen: React.FC = ({ moreToFetch, loadMoreRef, disableAlphabeticOrderFilter, - disableResultTypeFilter + disableResultTypeFilter, }) => { return ( <> diff --git a/src/screens/discover/DiscoverDetailScreen.tsx b/src/screens/discover/DiscoverDetailScreen.tsx index 0d02416d..604a4c07 100644 --- a/src/screens/discover/DiscoverDetailScreen.tsx +++ b/src/screens/discover/DiscoverDetailScreen.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState, useMemo} from 'react'; +import { useEffect, useState, useMemo } from 'react'; import { ShowData } from '../../types'; import { actionAdventureHandler, @@ -13,7 +13,6 @@ import { } from './discoverRequests'; import { useProfileContext } from '../../hooks'; import SearchResultCards from '../search_results/SearchResultsCards'; -import { useLoaderData } from 'react-router-dom'; import DetailScreen from '../DetailScreen'; import { Typography } from '@mui/material'; @@ -73,7 +72,6 @@ const requestHandler = async (props: RequestHandlerProps) => { }; const DiscoverDetailScreen: React.FC = () => { - const query: string = useLoaderData() as string; const viewStateKey: string = 'streamabilityDiscoverDetailView'; const { profile, setProfile } = useProfileContext(); const path = window.location.pathname @@ -91,7 +89,6 @@ const DiscoverDetailScreen: React.FC = () => { if (path) requestHandler({ path: path, setState: setData, setLoading: setLoading }); }, []); - const title = path ? PATHS[PATHS.findIndex((p) => p.path === path)].title : ''; if (!storageItem) localStorage.setItem(viewStateKey, initialView); diff --git a/src/screens/search_results/SearchResultsHeader.tsx b/src/screens/search_results/SearchResultsHeader.tsx index 616ed3bb..76f4c795 100644 --- a/src/screens/search_results/SearchResultsHeader.tsx +++ b/src/screens/search_results/SearchResultsHeader.tsx @@ -133,7 +133,11 @@ const SearchResultsHeader: React.FC = ({ return (
- {query &&

Search results for: {query}

} + {query && ( +

+ Search results for: {query} +

+ )}
{!disableResultTypeFilter && ( From f6e480ab4a0be04da8142037bad0541106ae6cb9 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 14 Oct 2024 13:48:26 -0400 Subject: [PATCH 12/26] chore: run todo-ci --- TODO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index a28605f9..ebe9f581 100644 --- a/TODO.md +++ b/TODO.md @@ -12,6 +12,6 @@ | [src/__tests__/screens/DiscoverScreen.test.tsx](src/__tests__/screens/DiscoverScreen.test.tsx#L29) | 29 | #851 Create global sections variable | | [src/screens/auth/LoginScreen.tsx](src/screens/auth/LoginScreen.tsx#L89) | 89 | We could try to get the AuthApiError type and use 'cause' instead | | [src/screens/dashboard/DashboardGalleryScreen.tsx](src/screens/dashboard/DashboardGalleryScreen.tsx#L38) | 38 | If profile does not return after a few seconds, | -| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L28) | 28 | paginate data #838 | -| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L113) | 113 | Create loader #839r | +| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L39) | 39 | paginate data #838 | +| [src/screens/discover/DiscoverDetailScreen.tsx](src/screens/discover/DiscoverDetailScreen.tsx#L107) | 107 | Create loader #839r | | [src/screens/discover/discoverRequests.ts](src/screens/discover/discoverRequests.ts#L54) | 54 | #613 Dynamic date range | From 11ff848d04e720cf58f21aee8beed1dda4932453 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 21 Oct 2024 08:59:06 -0400 Subject: [PATCH 13/26] chore: add Typ --- .../search_results/SearchResultsHeader.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/screens/search_results/SearchResultsHeader.tsx b/src/screens/search_results/SearchResultsHeader.tsx index 76f4c795..ec19fad2 100644 --- a/src/screens/search_results/SearchResultsHeader.tsx +++ b/src/screens/search_results/SearchResultsHeader.tsx @@ -131,15 +131,13 @@ const SearchResultsHeader: React.FC = ({ }; return ( -
- - {query && ( -

- Search results for: {query} -

- )} -
-
+
+ {query && ( + + Search results for: {query} + + )} +
{!disableResultTypeFilter && ( Date: Mon, 21 Oct 2024 09:03:01 -0400 Subject: [PATCH 14/26] chore: rename and move filter options component --- .../SortFilterHeader.tsx} | 12 ++++++------ src/screens/search_results/EmptySearchResults.tsx | 2 +- src/screens/search_results/index.ts | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/{screens/search_results/SearchResultsHeader.tsx => components/SortFilterHeader.tsx} (97%) diff --git a/src/screens/search_results/SearchResultsHeader.tsx b/src/components/SortFilterHeader.tsx similarity index 97% rename from src/screens/search_results/SearchResultsHeader.tsx rename to src/components/SortFilterHeader.tsx index ec19fad2..c9cf429d 100644 --- a/src/screens/search_results/SearchResultsHeader.tsx +++ b/src/components/SortFilterHeader.tsx @@ -8,10 +8,10 @@ import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; import ToggleButton from '@mui/material/ToggleButton'; import SvgIcon from '@mui/material/SvgIcon'; import Typ from '@mui/material/Typography'; -import { useWindowSize } from '../../hooks'; -import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../../helpers'; -import Logger from '../../logger'; -import { ShowData } from '../../types'; +import { useWindowSize } from '../hooks'; +import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../helpers'; +import Logger from '../logger'; +import { ShowData } from '../types'; const LOG = new Logger('SearchResultsHeader'); @@ -69,7 +69,7 @@ interface FilterProps { * Heading of the screen showing the search query * and containing the view toggle button. */ -const SearchResultsHeader: React.FC = ({ +const SortFilterHeader: React.FC = ({ query, viewStateKey, viewState, @@ -255,4 +255,4 @@ const SearchResultsHeader: React.FC = ({ ); }; -export default SearchResultsHeader; +export default SortFilterHeader; diff --git a/src/screens/search_results/EmptySearchResults.tsx b/src/screens/search_results/EmptySearchResults.tsx index 1d6f8889..eceeb09a 100644 --- a/src/screens/search_results/EmptySearchResults.tsx +++ b/src/screens/search_results/EmptySearchResults.tsx @@ -4,7 +4,7 @@ import { ShowCarousel, Button } from '../../components'; import { useTrendingShows } from '../../hooks'; import Home from '@mui/icons-material/Home'; import { useNavigate } from 'react-router-dom'; -import SearchResultsHeader from './SearchResultsHeader'; +import SearchResultsHeader from '../../components/SortFilterHeader'; interface EmptySearchResultsProps { /** diff --git a/src/screens/search_results/index.ts b/src/screens/search_results/index.ts index 2b5dd38e..b48ca51b 100644 --- a/src/screens/search_results/index.ts +++ b/src/screens/search_results/index.ts @@ -1,6 +1,6 @@ import EmptySearchResults from './EmptySearchResults'; import SearchResultsCards from './SearchResultsCards'; -import SearchResultsHeader from './SearchResultsHeader'; +import SearchResultsHeader from '../../components/SortFilterHeader'; import SearchResultsScreen from './SearchResultsScreen'; export { EmptySearchResults, SearchResultsCards, SearchResultsHeader, SearchResultsScreen }; From 1f73bcb21f70ac253cdecb900fbd0dc99b07f32d Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Wed, 23 Oct 2024 09:10:57 -0400 Subject: [PATCH 15/26] chore: fix missed refactor for SortFilterHeader --- src/screens/loaders/SearchResultsLoader.tsx | 9 +++++++-- src/screens/search_results/EmptySearchResults.tsx | 10 +++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/screens/loaders/SearchResultsLoader.tsx b/src/screens/loaders/SearchResultsLoader.tsx index 1b749625..8cb773ce 100644 --- a/src/screens/loaders/SearchResultsLoader.tsx +++ b/src/screens/loaders/SearchResultsLoader.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { ShowCardLoader, ShowListCardLoader } from '../../components'; import { WindowSize } from '../../hooks/useWindowSize'; -import { SearchResultsHeader } from '../search_results'; +import SortFilterHeader from '../../components/SortFilterHeader'; interface SearchResultsLoaderProps { /** @@ -12,6 +12,10 @@ interface SearchResultsLoaderProps { * Current state of users view */ viewState: 'list' | 'grid'; + /** + * Local storage key that for view state + */ + viewStateKey: string; /** * Current size of users window */ @@ -21,11 +25,12 @@ interface SearchResultsLoaderProps { const SearchResultsLoader: React.FC = ({ query, viewState, + viewStateKey, windowSize, }) => { return (
- +
= ({ query, viewState }) => { +const EmptySearchResults: React.FC = ({ query, viewState, viewStateKey }) => { const navigate = useNavigate(); const { trendingShows, loading } = useTrendingShows(); return (
- +
From 893a81ad42a97f6107bb9c30bd7d0161ae3fd6c7 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 28 Oct 2024 08:53:14 -0400 Subject: [PATCH 16/26] Revert "chore: rename and move filter options component" This reverts commit f198d0d25558d2318700c9facab4ee4c5b1a7bca. --- src/screens/search_results/EmptySearchResults.tsx | 2 +- .../search_results/SearchResultsHeader.tsx} | 12 ++++++------ src/screens/search_results/index.ts | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/{components/SortFilterHeader.tsx => screens/search_results/SearchResultsHeader.tsx} (97%) diff --git a/src/screens/search_results/EmptySearchResults.tsx b/src/screens/search_results/EmptySearchResults.tsx index 0161f416..306ab029 100644 --- a/src/screens/search_results/EmptySearchResults.tsx +++ b/src/screens/search_results/EmptySearchResults.tsx @@ -4,7 +4,7 @@ import { ShowCarousel, Button } from '../../components'; import { useTrendingShows } from '../../hooks'; import Home from '@mui/icons-material/Home'; import { useNavigate } from 'react-router-dom'; -import SortFilterHeader from '../../components/SortFilterHeader'; +import SearchResultsHeader from './SearchResultsHeader'; interface EmptySearchResultsProps { /** diff --git a/src/components/SortFilterHeader.tsx b/src/screens/search_results/SearchResultsHeader.tsx similarity index 97% rename from src/components/SortFilterHeader.tsx rename to src/screens/search_results/SearchResultsHeader.tsx index c9cf429d..ec19fad2 100644 --- a/src/components/SortFilterHeader.tsx +++ b/src/screens/search_results/SearchResultsHeader.tsx @@ -8,10 +8,10 @@ import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; import ToggleButton from '@mui/material/ToggleButton'; import SvgIcon from '@mui/material/SvgIcon'; import Typ from '@mui/material/Typography'; -import { useWindowSize } from '../hooks'; -import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../helpers'; -import Logger from '../logger'; -import { ShowData } from '../types'; +import { useWindowSize } from '../../hooks'; +import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../../helpers'; +import Logger from '../../logger'; +import { ShowData } from '../../types'; const LOG = new Logger('SearchResultsHeader'); @@ -69,7 +69,7 @@ interface FilterProps { * Heading of the screen showing the search query * and containing the view toggle button. */ -const SortFilterHeader: React.FC = ({ +const SearchResultsHeader: React.FC = ({ query, viewStateKey, viewState, @@ -255,4 +255,4 @@ const SortFilterHeader: React.FC = ({ ); }; -export default SortFilterHeader; +export default SearchResultsHeader; diff --git a/src/screens/search_results/index.ts b/src/screens/search_results/index.ts index b48ca51b..2b5dd38e 100644 --- a/src/screens/search_results/index.ts +++ b/src/screens/search_results/index.ts @@ -1,6 +1,6 @@ import EmptySearchResults from './EmptySearchResults'; import SearchResultsCards from './SearchResultsCards'; -import SearchResultsHeader from '../../components/SortFilterHeader'; +import SearchResultsHeader from './SearchResultsHeader'; import SearchResultsScreen from './SearchResultsScreen'; export { EmptySearchResults, SearchResultsCards, SearchResultsHeader, SearchResultsScreen }; From 91baa097021b82a1288864c0f09e212f2227be13 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 28 Oct 2024 08:54:14 -0400 Subject: [PATCH 17/26] Revert Changes from rename and move filter option component --- src/screens/loaders/SearchResultsLoader.tsx | 4 ++-- src/screens/search_results/EmptySearchResults.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/screens/loaders/SearchResultsLoader.tsx b/src/screens/loaders/SearchResultsLoader.tsx index 8cb773ce..5cc19e26 100644 --- a/src/screens/loaders/SearchResultsLoader.tsx +++ b/src/screens/loaders/SearchResultsLoader.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { ShowCardLoader, ShowListCardLoader } from '../../components'; import { WindowSize } from '../../hooks/useWindowSize'; -import SortFilterHeader from '../../components/SortFilterHeader'; +import SearchResultsHeader from '../search_results/SearchResultsHeader'; interface SearchResultsLoaderProps { /** @@ -30,7 +30,7 @@ const SearchResultsLoader: React.FC = ({ }) => { return (
- +
= ({ query, viewStat return (
- +
From 5d0ff5c28914997b99e9172d7d3646054d0e5b38 Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 28 Oct 2024 09:07:00 -0400 Subject: [PATCH 18/26] chore: rename and move sort filter component --- .../SortFilterHeader.tsx} | 18 ++++++++++-------- src/screens/loaders/SearchResultsLoader.tsx | 15 ++++++++------- .../search_results/EmptySearchResults.tsx | 14 +++++++++++--- src/screens/search_results/index.ts | 2 +- 4 files changed, 30 insertions(+), 19 deletions(-) rename src/{screens/search_results/SearchResultsHeader.tsx => components/SortFilterHeader.tsx} (96%) diff --git a/src/screens/search_results/SearchResultsHeader.tsx b/src/components/SortFilterHeader.tsx similarity index 96% rename from src/screens/search_results/SearchResultsHeader.tsx rename to src/components/SortFilterHeader.tsx index ec19fad2..f5ada947 100644 --- a/src/screens/search_results/SearchResultsHeader.tsx +++ b/src/components/SortFilterHeader.tsx @@ -8,10 +8,10 @@ import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; import ToggleButton from '@mui/material/ToggleButton'; import SvgIcon from '@mui/material/SvgIcon'; import Typ from '@mui/material/Typography'; -import { useWindowSize } from '../../hooks'; -import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../../helpers'; -import Logger from '../../logger'; -import { ShowData } from '../../types'; +import { useWindowSize } from '../hooks'; +import { sortShowsAlphaAsc, sortShowsAlphaDesc, filterShowsByType } from '../helpers'; +import Logger from '../logger'; +import { ShowData } from '../types'; const LOG = new Logger('SearchResultsHeader'); @@ -69,7 +69,7 @@ interface FilterProps { * Heading of the screen showing the search query * and containing the view toggle button. */ -const SearchResultsHeader: React.FC = ({ +const SortFilterHeader: React.FC = ({ query, viewStateKey, viewState, @@ -131,13 +131,15 @@ const SearchResultsHeader: React.FC = ({ }; return ( -
+
{query && ( Search results for: {query} )} -
+
{!disableResultTypeFilter && ( = ({ ); }; -export default SearchResultsHeader; +export default SortFilterHeader; diff --git a/src/screens/loaders/SearchResultsLoader.tsx b/src/screens/loaders/SearchResultsLoader.tsx index 5cc19e26..f5eb2c9a 100644 --- a/src/screens/loaders/SearchResultsLoader.tsx +++ b/src/screens/loaders/SearchResultsLoader.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { ShowCardLoader, ShowListCardLoader } from '../../components'; import { WindowSize } from '../../hooks/useWindowSize'; -import SearchResultsHeader from '../search_results/SearchResultsHeader'; +import SortFilterHeader from '../../components/SortFilterHeader'; interface SearchResultsLoaderProps { /** @@ -12,10 +12,7 @@ interface SearchResultsLoaderProps { * Current state of users view */ viewState: 'list' | 'grid'; - /** - * Local storage key that for view state - */ - viewStateKey: string; + /** * Current size of users window */ @@ -25,12 +22,16 @@ interface SearchResultsLoaderProps { const SearchResultsLoader: React.FC = ({ query, viewState, - viewStateKey, windowSize, }) => { return (
- +
= ({ query, viewState, viewStateKey }) => { +const EmptySearchResults: React.FC = ({ + query, + viewState, +}) => { const navigate = useNavigate(); const { trendingShows, loading } = useTrendingShows(); return (
- +
diff --git a/src/screens/search_results/index.ts b/src/screens/search_results/index.ts index 2b5dd38e..b48ca51b 100644 --- a/src/screens/search_results/index.ts +++ b/src/screens/search_results/index.ts @@ -1,6 +1,6 @@ import EmptySearchResults from './EmptySearchResults'; import SearchResultsCards from './SearchResultsCards'; -import SearchResultsHeader from './SearchResultsHeader'; +import SearchResultsHeader from '../../components/SortFilterHeader'; import SearchResultsScreen from './SearchResultsScreen'; export { EmptySearchResults, SearchResultsCards, SearchResultsHeader, SearchResultsScreen }; From 551225f57b81c2ef3c5061aa193ee63735bce25c Mon Sep 17 00:00:00 2001 From: Demetrius Lewis Date: Mon, 28 Oct 2024 13:16:50 -0400 Subject: [PATCH 19/26] chore: missed viewStateKey prop remove --- src/screens/search_results/EmptySearchResults.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/screens/search_results/EmptySearchResults.tsx b/src/screens/search_results/EmptySearchResults.tsx index 02568dc6..588e53f0 100644 --- a/src/screens/search_results/EmptySearchResults.tsx +++ b/src/screens/search_results/EmptySearchResults.tsx @@ -11,10 +11,6 @@ interface EmptySearchResultsProps { * String of query searched by user */ query: string; - /** - * Local storage key that for view state - */ - viewStateKey: string; /** * Current state of users view */ @@ -24,10 +20,7 @@ interface EmptySearchResultsProps { /** * Rendered when MDB returns no results for a search. */ -const EmptySearchResults: React.FC = ({ - query, - viewState, -}) => { +const EmptySearchResults: React.FC = ({ query, viewState }) => { const navigate = useNavigate(); const { trendingShows, loading } = useTrendingShows(); From e8c03f2c12278958780151fa98847569b3a01bb6 Mon Sep 17 00:00:00 2001 From: Demetrius Date: Mon, 28 Oct 2024 13:24:30 -0400 Subject: [PATCH 20/26] Update src/components/SortFilterHeader.tsx Co-authored-by: Leithen --- src/components/SortFilterHeader.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SortFilterHeader.tsx b/src/components/SortFilterHeader.tsx index f5ada947..9233a8d4 100644 --- a/src/components/SortFilterHeader.tsx +++ b/src/components/SortFilterHeader.tsx @@ -139,7 +139,7 @@ const SortFilterHeader: React.FC = ({ Search results for: {query} )} -
+
{!disableResultTypeFilter && ( Date: Sat, 26 Oct 2024 16:49:19 +0000 Subject: [PATCH 21/26] Bump supabase from 1.191.3 to 1.207.9 Bumps [supabase](https://github.com/supabase/cli) from 1.191.3 to 1.207.9. - [Release notes](https://github.com/supabase/cli/releases) - [Changelog](https://github.com/supabase/cli/blob/develop/.goreleaser.yml) - [Commits](https://github.com/supabase/cli/compare/v1.191.3...v1.207.9) --- updated-dependencies: - dependency-name: supabase dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 86 ++++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6013a448..e832bf79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "prettier": "^3.3.3", "storybook": "^8.2.8", "storybook-addon-remix-react-router": "^3.0.1", - "supabase": "^1.191.3", + "supabase": "^1.207.9", "tailwindcss": "^3.4.4", "tsx": "^4.17.0", "typescript": "^5.5.4", @@ -5136,31 +5136,19 @@ } }, "node_modules/bin-links": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", - "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", + "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "dev": true, "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/bin-links/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/binary-extensions": { @@ -5556,12 +5544,12 @@ } }, "node_modules/cmd-shim": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", + "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/color-convert": { @@ -9616,12 +9604,12 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/nuka-carousel": { @@ -10553,6 +10541,15 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", + "dev": true, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -10828,12 +10825,12 @@ } }, "node_modules/read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", + "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/readdirp": { @@ -11827,13 +11824,13 @@ } }, "node_modules/supabase": { - "version": "1.191.3", - "resolved": "https://registry.npmjs.org/supabase/-/supabase-1.191.3.tgz", - "integrity": "sha512-5tIG7mPc5lZ9QRbkZssyHiOsx42qGFaVqclauXv+1fJAkZnfA28d0pzEDvfs33+w8YTReO5nNaWAgyzkWQQwfA==", + "version": "1.207.9", + "resolved": "https://registry.npmjs.org/supabase/-/supabase-1.207.9.tgz", + "integrity": "sha512-BJPwsAd2UBIpQawcQV3/xKHEZ8YrrkHYpgibxCZbG+RuxuhTtkHG7zR4I3LylIIEwcKp3hmDKu/hO1m2NT5RXA==", "dev": true, "hasInstallScript": true, "dependencies": { - "bin-links": "^4.0.3", + "bin-links": "^5.0.0", "https-proxy-agent": "^7.0.2", "node-fetch": "^3.3.2", "tar": "7.4.3" @@ -13636,6 +13633,19 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", diff --git a/package.json b/package.json index 4122b422..edc79a32 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "prettier": "^3.3.3", "storybook": "^8.2.8", "storybook-addon-remix-react-router": "^3.0.1", - "supabase": "^1.191.3", + "supabase": "^1.207.9", "tailwindcss": "^3.4.4", "tsx": "^4.17.0", "typescript": "^5.5.4", From 991743e42feba1a50766270c48e59274c3db811d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:48:07 +0000 Subject: [PATCH 22/26] Bump @types/react from 18.3.8 to 18.3.12 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.3.8 to 18.3.12. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e832bf79..12462e8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/node": "^22.5.4", - "@types/react": "^18.3.8", + "@types/react": "^18.3.12", "@types/react-dom": "^18.3.0", "@types/yargs": "^17.0.33", "@typescript-eslint/eslint-plugin": "^7.13.1", @@ -4077,9 +4077,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.8.tgz", - "integrity": "sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" diff --git a/package.json b/package.json index edc79a32..e3260767 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/node": "^22.5.4", - "@types/react": "^18.3.8", + "@types/react": "^18.3.12", "@types/react-dom": "^18.3.0", "@types/yargs": "^17.0.33", "@typescript-eslint/eslint-plugin": "^7.13.1", From 261f73bb073f95415fc01a248980aac04870b076 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:39:54 +0000 Subject: [PATCH 23/26] Bump typescript from 5.5.4 to 5.6.3 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.5.4 to 5.6.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12462e8a..cb982155 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "supabase": "^1.207.9", "tailwindcss": "^3.4.4", "tsx": "^4.17.0", - "typescript": "^5.5.4", + "typescript": "^5.6.3", "vite": "^5.4.8", "vitest": "^1.6.0", "yargs": "^17.7.2" @@ -12793,9 +12793,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index e3260767..01ab7b52 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "supabase": "^1.207.9", "tailwindcss": "^3.4.4", "tsx": "^4.17.0", - "typescript": "^5.5.4", + "typescript": "^5.6.3", "vite": "^5.4.8", "vitest": "^1.6.0", "yargs": "^17.7.2" From c57d97515c7d5f5d0f334ddffb0e0862229c1f51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:47:31 +0000 Subject: [PATCH 24/26] Bump markdownlint-cli from 0.41.0 to 0.42.0 Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.41.0 to 0.42.0. - [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases) - [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: markdownlint-cli dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 136 ++++++++++++++++++++++++++++++++++++++-------- package.json | 2 +- 2 files changed, 114 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb982155..54ae1c01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "eslint-plugin-storybook": "^0.9.0", "jsdom": "^25.0.1", "leasot": "^14.4.0", - "markdownlint-cli": "^0.41.0", + "markdownlint-cli": "^0.42.0", "patch-package": "^8.0.0", "postcss": "^8.4.41", "prettier": "^3.3.3", @@ -8922,9 +8922,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true }, "node_modules/jsonfile": { @@ -9267,13 +9267,13 @@ } }, "node_modules/markdownlint": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", - "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.35.0.tgz", + "integrity": "sha512-wgp8yesWjFBL7bycA3hxwHRdsZGJhjhyP1dSxKVKrza0EPFYtn+mHtkVy6dvP1kGSjovyG5B8yNP6Frj0UFUJg==", "dev": true, "dependencies": { "markdown-it": "14.1.0", - "markdownlint-micromark": "0.1.9" + "markdownlint-micromark": "0.1.10" }, "engines": { "node": ">=18" @@ -9283,22 +9283,22 @@ } }, "node_modules/markdownlint-cli": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.41.0.tgz", - "integrity": "sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.42.0.tgz", + "integrity": "sha512-AjkzhhZa3TmEGi/CE2Wpmny69x1IrzqK2gPB0k8SmNMRgnSAJfyEO5FgZdWTHtJ6Nrdv5FWt5c4C5pkG6Dk30A==", "dev": true, "dependencies": { "commander": "~12.1.0", "get-stdin": "~9.0.0", - "glob": "~10.4.1", - "ignore": "~5.3.1", + "glob": "~11.0.0", + "ignore": "~6.0.2", "js-yaml": "^4.1.0", - "jsonc-parser": "~3.2.1", + "jsonc-parser": "~3.3.1", "jsonpointer": "5.0.1", - "markdownlint": "~0.34.0", - "minimatch": "~9.0.4", + "markdownlint": "~0.35.0", + "minimatch": "~10.0.1", "run-con": "~1.3.2", - "smol-toml": "~1.2.0" + "smol-toml": "~1.3.0" }, "bin": { "markdownlint": "markdownlint.js" @@ -9316,10 +9316,97 @@ "node": ">=18" } }, + "node_modules/markdownlint-cli/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-cli/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/markdownlint-cli/node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-cli/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-cli/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/markdownlint-micromark": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", - "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.10.tgz", + "integrity": "sha512-no5ZfdqAdWGxftCLlySHSgddEjyW4kui4z7amQcGsSKfYC5v/ou+8mIQVyg9KQMeEZLNtz9OPDTj7nnTnoR4FQ==", "dev": true, "engines": { "node": ">=18" @@ -11431,12 +11518,15 @@ } }, "node_modules/smol-toml": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.2.2.tgz", - "integrity": "sha512-fVEjX2ybKdJKzFL46VshQbj9PuA4IUKivalgp48/3zwS9vXzyykzQ6AX92UxHSvWJagziMRLeHMgEzoGO7A8hQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.0.tgz", + "integrity": "sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA==", "dev": true, "engines": { "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" } }, "node_modules/source-map": { diff --git a/package.json b/package.json index 01ab7b52..719b34be 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "eslint-plugin-storybook": "^0.9.0", "jsdom": "^25.0.1", "leasot": "^14.4.0", - "markdownlint-cli": "^0.41.0", + "markdownlint-cli": "^0.42.0", "patch-package": "^8.0.0", "postcss": "^8.4.41", "prettier": "^3.3.3", From ec816929594fc2723bcddbb1293a766fe2351e0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 00:47:51 +0000 Subject: [PATCH 25/26] Bump eslint-plugin-react from 7.34.3 to 7.37.2 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.3 to 7.37.2. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.37.2) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 90 +++++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 38 insertions(+), 54 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54ae1c01..89b46296 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "dotenv": "^16.4.5", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react": "^7.37.2", "eslint-plugin-storybook": "^0.9.0", "jsdom": "^25.0.1", "leasot": "^14.4.0", @@ -4924,18 +4924,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", @@ -6208,9 +6196,9 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -6220,12 +6208,12 @@ "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", + "iterator.prototype": "^1.1.3", "safe-array-concat": "^1.1.2" }, "engines": { @@ -6483,35 +6471,35 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", - "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { @@ -8392,9 +8380,9 @@ "dev": true }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "dependencies": { "define-properties": "^1.2.1", @@ -8402,6 +8390,9 @@ "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jackspeak": { @@ -9818,23 +9809,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -11749,6 +11723,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -13529,13 +13513,13 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -13544,8 +13528,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" diff --git a/package.json b/package.json index 719b34be..5bc25130 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "dotenv": "^16.4.5", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react": "^7.37.2", "eslint-plugin-storybook": "^0.9.0", "jsdom": "^25.0.1", "leasot": "^14.4.0", From 6acde9e7bd74cfb854c168badafd825b80eeef8a Mon Sep 17 00:00:00 2001 From: Thenlie Date: Thu, 31 Oct 2024 18:53:55 -0600 Subject: [PATCH 26/26] fix npm vulnerabilities --- package-lock.json | 315 ++++++++++-------- ...easot+13.3.0.patch => leasot+14.4.0.patch} | 0 2 files changed, 170 insertions(+), 145 deletions(-) rename patches/{leasot+13.3.0.patch => leasot+14.4.0.patch} (100%) diff --git a/package-lock.json b/package-lock.json index 89b46296..5e08b138 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2438,9 +2438,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", - "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz", + "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==", "cpu": [ "arm" ], @@ -2451,9 +2451,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", - "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz", + "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==", "cpu": [ "arm64" ], @@ -2464,9 +2464,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", - "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz", + "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==", "cpu": [ "arm64" ], @@ -2477,9 +2477,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", - "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz", + "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==", "cpu": [ "x64" ], @@ -2489,10 +2489,36 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz", + "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz", + "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", - "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz", + "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==", "cpu": [ "arm" ], @@ -2503,9 +2529,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", - "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz", + "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==", "cpu": [ "arm" ], @@ -2516,9 +2542,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", - "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz", + "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==", "cpu": [ "arm64" ], @@ -2529,9 +2555,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", - "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz", + "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==", "cpu": [ "arm64" ], @@ -2542,9 +2568,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", - "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz", + "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==", "cpu": [ "ppc64" ], @@ -2555,9 +2581,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", - "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz", + "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==", "cpu": [ "riscv64" ], @@ -2568,9 +2594,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", - "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz", + "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==", "cpu": [ "s390x" ], @@ -2581,9 +2607,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", - "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz", + "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==", "cpu": [ "x64" ], @@ -2594,9 +2620,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", - "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz", + "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==", "cpu": [ "x64" ], @@ -2607,9 +2633,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", - "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz", + "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==", "cpu": [ "arm64" ], @@ -2620,9 +2646,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", - "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz", + "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==", "cpu": [ "ia32" ], @@ -2633,9 +2659,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", - "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz", + "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==", "cpu": [ "x64" ], @@ -5152,9 +5178,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -5165,7 +5191,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -5190,21 +5216,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -5630,9 +5641,9 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "engines": { "node": ">= 0.6" @@ -6062,9 +6073,9 @@ "dev": true }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "engines": { "node": ">= 0.8" @@ -6967,37 +6978,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -7023,21 +7034,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -7161,13 +7157,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -9431,10 +9427,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -9461,9 +9460,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -10227,9 +10226,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "node_modules/path-type": { @@ -10666,6 +10665,21 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -11154,12 +11168,12 @@ } }, "node_modules/rollup": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", - "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz", + "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -11169,29 +11183,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.0", - "@rollup/rollup-android-arm64": "4.21.0", - "@rollup/rollup-darwin-arm64": "4.21.0", - "@rollup/rollup-darwin-x64": "4.21.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", - "@rollup/rollup-linux-arm-musleabihf": "4.21.0", - "@rollup/rollup-linux-arm64-gnu": "4.21.0", - "@rollup/rollup-linux-arm64-musl": "4.21.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", - "@rollup/rollup-linux-riscv64-gnu": "4.21.0", - "@rollup/rollup-linux-s390x-gnu": "4.21.0", - "@rollup/rollup-linux-x64-gnu": "4.21.0", - "@rollup/rollup-linux-x64-musl": "4.21.0", - "@rollup/rollup-win32-arm64-msvc": "4.21.0", - "@rollup/rollup-win32-ia32-msvc": "4.21.0", - "@rollup/rollup-win32-x64-msvc": "4.21.0", + "@rollup/rollup-android-arm-eabi": "4.24.3", + "@rollup/rollup-android-arm64": "4.24.3", + "@rollup/rollup-darwin-arm64": "4.24.3", + "@rollup/rollup-darwin-x64": "4.24.3", + "@rollup/rollup-freebsd-arm64": "4.24.3", + "@rollup/rollup-freebsd-x64": "4.24.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.3", + "@rollup/rollup-linux-arm-musleabihf": "4.24.3", + "@rollup/rollup-linux-arm64-gnu": "4.24.3", + "@rollup/rollup-linux-arm64-musl": "4.24.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3", + "@rollup/rollup-linux-riscv64-gnu": "4.24.3", + "@rollup/rollup-linux-s390x-gnu": "4.24.3", + "@rollup/rollup-linux-x64-gnu": "4.24.3", + "@rollup/rollup-linux-x64-musl": "4.24.3", + "@rollup/rollup-win32-arm64-msvc": "4.24.3", + "@rollup/rollup-win32-ia32-msvc": "4.24.3", + "@rollup/rollup-win32-x64-msvc": "4.24.3", "fsevents": "~2.3.2" } }, "node_modules/rollup/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/rrweb-cssom": { @@ -11329,9 +11345,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -11367,6 +11383,15 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -11374,15 +11399,15 @@ "dev": true }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" diff --git a/patches/leasot+13.3.0.patch b/patches/leasot+14.4.0.patch similarity index 100% rename from patches/leasot+13.3.0.patch rename to patches/leasot+14.4.0.patch