chore: update react-instancesearch to v7 (#57020)

Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
Sem Bauke
2024-11-08 14:20:13 +01:00
committed by GitHub
parent 6c34c2b341
commit 228c2316ee
13 changed files with 872 additions and 361 deletions

View File

@@ -160,7 +160,6 @@
],
"cta": "Start Learning Now (it's free)"
},
"certification-heading": "Earn free verified certifications in:",
"core-certs-heading": "Earn free verified certifications with freeCodeCamp's core curriculum:",
"learn-english-heading": "Learn English for Developers:",
@@ -781,6 +780,7 @@
"heart": "Heart",
"initial": "Initial",
"input-reset": "Clear search terms",
"input-search": "Submit search terms",
"info": "Intro Information",
"spacer": "Spacer",
"toggle": "Toggle Checkmark",

View File

@@ -84,6 +84,7 @@
"micromark": "4.0.0",
"monaco-editor": "0.28.1",
"nanoid": "3.3.7",
"instantsearch.js": "4.75.3",
"normalize-url": "4.5.1",
"path-browserify": "1.0.1",
"postcss": "8.4.35",
@@ -99,8 +100,8 @@
"react-helmet": "6.1.0",
"react-hotkeys": "2.0.0",
"react-i18next": "12.3.1",
"react-instantsearch-core": "6.40.4",
"react-instantsearch-dom": "6.40.4",
"react-instantsearch-core": "7.13.6",
"react-instantsearch": "7.13.6",
"react-monaco-editor": "0.40.0",
"react-redux": "7.2.9",
"react-reflex": "4.1.0",
@@ -143,8 +144,6 @@
"@types/react-dom": "16.9.24",
"@types/react-gtm-module": "2.0.3",
"@types/react-helmet": "6.1.11",
"@types/react-instantsearch-core": "6.26.10",
"@types/react-instantsearch-dom": "6.12.8",
"@types/react-redux": "7.1.33",
"@types/react-responsive": "8.0.8",
"@types/react-scrollable-anchor": "0.6.4",

View File

@@ -3,8 +3,7 @@ import React, { Component } from 'react';
import { HotKeys, ObserveKeys } from 'react-hotkeys';
import type { TFunction } from 'i18next';
import { withTranslation } from 'react-i18next';
import { Hit } from 'react-instantsearch-core';
import { SearchBox } from 'react-instantsearch-dom';
import { SearchBox } from 'react-instantsearch';
import { connect } from 'react-redux';
import { AnyAction, bindActionCreators, Dispatch } from 'redux';
import { createSelector } from 'reselect';
@@ -14,15 +13,14 @@ import {
isSearchDropdownEnabledSelector,
isSearchBarFocusedSelector,
toggleSearchDropdown,
toggleSearchFocused,
updateSearchQuery
toggleSearchFocused
} from '../redux';
import WithInstantSearch from '../with-instant-search';
import SearchHits from './search-hits';
import type { Hit } from './types';
import './searchbar-base.css';
import './searchbar.css';
import SearchHits from './search-hits';
const searchUrl = searchPageUrl;
const mapStateToProps = createSelector(
@@ -35,16 +33,12 @@ const mapStateToProps = createSelector(
);
const mapDispatchToProps = (dispatch: Dispatch<AnyAction>) =>
bindActionCreators(
{ toggleSearchDropdown, toggleSearchFocused, updateSearchQuery },
dispatch
);
bindActionCreators({ toggleSearchDropdown, toggleSearchFocused }, dispatch);
export type SearchBarProps = {
innerRef?: React.RefObject<HTMLDivElement>;
toggleSearchDropdown: typeof toggleSearchDropdown;
toggleSearchFocused: typeof toggleSearchFocused;
updateSearchQuery: typeof updateSearchQuery;
isDropdownEnabled?: boolean;
isSearchFocused?: boolean;
t: TFunction;
@@ -115,7 +109,7 @@ export class SearchBar extends Component<SearchBarProps, SearchBarState> {
query?: string
): boolean | void => {
e.preventDefault();
const { toggleSearchDropdown, updateSearchQuery } = this.props;
const { toggleSearchDropdown } = this.props;
const { index, hits } = this.state;
const selectedHit = hits[index];
@@ -128,7 +122,6 @@ export class SearchBar extends Component<SearchBarProps, SearchBarState> {
// Set query to value in search bar if enter is pressed
query = (e.currentTarget?.children?.[0] as HTMLInputElement).value;
}
updateSearchQuery(query);
//clear input value
const searchInput = e.currentTarget?.children?.[0] as HTMLInputElement;
@@ -151,13 +144,18 @@ export class SearchBar extends Component<SearchBarProps, SearchBarState> {
handleMouseEnter = (e: React.SyntheticEvent<HTMLElement, Event>): void => {
e.persist();
const hoveredText = e.currentTarget.innerText;
this.setState(({ hits }) => {
const hitsTitles = hits.map(hit => hit.title);
const hoveredIndex = hitsTitles.indexOf(hoveredText);
return { index: hoveredIndex };
if (e.target instanceof HTMLElement) {
const targetText = e.target.textContent;
const hoveredIndex = targetText ? hitsTitles.indexOf(targetText) : -1;
return { index: hoveredIndex };
}
return { index: -1 };
});
};
@@ -220,25 +218,23 @@ export class SearchBar extends Component<SearchBarProps, SearchBarState> {
<ObserveKeys except={['Space']}>
<SearchBox
data-playwright-test-label='header-search'
focusShortcuts={['83', '191']}
onChange={this.handleChange}
onSubmit={e => {
this.handleSearch(e);
}}
showLoadingIndicator={false}
onInput={this.handleChange}
translations={{
submitTitle: t('icons.magnifier'),
resetTitle: t('icons.input-reset'),
placeholder: searchPlaceholder
submitButtonTitle: t('icons.input-search'),
resetButtonTitle: t('icons.input-reset')
}}
placeholder={searchPlaceholder}
onFocus={this.handleFocus}
/>
</ObserveKeys>
{isDropdownEnabled && isSearchFocused && (
<SearchHits
handleHits={this.handleHits}
handleMouseEnter={this.handleMouseEnter}
handleMouseLeave={this.handleMouseLeave}
handleHits={this.handleHits}
selectedIndex={index}
/>
)}

View File

@@ -1,118 +1,87 @@
import { isEmpty } from 'lodash-es';
import React, { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { SearchState, Hit } from 'react-instantsearch-core';
import { connectStateResults, connectHits } from 'react-instantsearch-dom';
import { useHits } from 'react-instantsearch';
import { searchPageUrl } from '../../../utils/algolia-locale-setup';
import NoHitsSuggestion from './no-hits-suggestion';
import Suggestion from './search-suggestion';
import NoHitsSuggestion from './no-hits-suggestion';
import type { Hit } from './types';
const searchUrl = searchPageUrl;
interface CustomHitsProps {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
hits: Array<any>;
searchQuery: string;
handleMouseEnter: (e: React.SyntheticEvent<HTMLElement, Event>) => void;
handleMouseLeave: (e: React.SyntheticEvent<HTMLElement, Event>) => void;
selectedIndex: number;
handleHits: (currHits: Array<Hit>) => void;
}
interface SearchHitsProps {
searchState: SearchState;
handleMouseEnter: (e: React.SyntheticEvent<HTMLElement, Event>) => void;
handleMouseLeave: (e: React.SyntheticEvent<HTMLElement, Event>) => void;
handleHits: (hits: Hit[]) => void;
selectedIndex: number;
handleHits: (currHits: Array<Hit>) => void;
}
const CustomHits = connectHits(
({
hits,
searchQuery,
handleMouseEnter,
handleMouseLeave,
selectedIndex,
handleHits
}: CustomHitsProps) => {
const { t } = useTranslation();
const noHits = isEmpty(hits);
const noHitsTitle = t('search.no-tutorials');
const footer = [
{
objectID: `footer-${searchQuery}`,
query: searchQuery,
url: noHits
? null
: `${searchUrl}?query=${encodeURIComponent(searchQuery)}`,
title: t('search.see-results', { searchQuery: searchQuery }),
_highlightResult: {
query: {
value: `
<ais-highlight-0000000000>
${t('search.see-results', { searchQuery: searchQuery })}
</ais-highlight-0000000000>
`
}
function SearchHits({
handleMouseEnter,
handleMouseLeave,
handleHits,
selectedIndex
}: SearchHitsProps) {
const { results } = useHits<Hit>();
const query = results ? results.query : '';
const { t } = useTranslation();
const noHits = isEmpty(results?.hits);
const noHitsTitle = t('search.no-tutorials');
const footer = [
{
__position: 8,
objectID: `footer-${query}`,
query: query,
url: noHits ? '' : `${searchUrl}?query=${encodeURIComponent(query)}`,
_highlightResult: {
query: {
value: `${t('search.see-results', { searchQuery: query })}`,
matchLevel: 'none' as const,
matchedWords: []
}
}
];
const allHits = hits.slice(0, 8).concat(footer);
useEffect(() => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
handleHits(allHits);
});
}
];
const allHits: Hit[] =
results?.hits && results?.query ? [...results.hits, ...footer] : [];
return (
<div className='ais-Hits'>
<ul className='ais-Hits-list' aria-label={t('search.result-list')}>
{allHits.map((hit: Hit, i: number) => (
<li
className={
!noHits && i === selectedIndex
? 'ais-Hits-item selected'
: 'ais-Hits-item'
}
data-fccobjectid={hit.objectID}
key={hit.objectID}
>
{noHits ? (
<NoHitsSuggestion
handleMouseEnter={handleMouseEnter}
handleMouseLeave={handleMouseLeave}
title={noHitsTitle}
/>
) : (
<Suggestion
handleMouseEnter={handleMouseEnter}
handleMouseLeave={handleMouseLeave}
hit={hit}
/>
)}
</li>
))}
</ul>
</div>
);
}
);
useEffect(() => {
handleHits(allHits);
});
const SearchHits = connectStateResults(
({
searchState,
handleMouseEnter,
handleMouseLeave,
selectedIndex,
handleHits
}: SearchHitsProps) => {
return isEmpty(searchState) || !searchState.query ? null : (
<CustomHits
handleHits={handleHits}
handleMouseEnter={handleMouseEnter}
handleMouseLeave={handleMouseLeave}
searchQuery={searchState.query}
selectedIndex={selectedIndex}
/>
);
}
);
return (
<div className='ais-Hits'>
<ul className='ais-Hits-list' aria-label={t('search.result-list')}>
{allHits.map((hit: Hit, i: number) => (
<li
className={
!noHits && i === selectedIndex
? 'ais-Hits-item selected'
: 'ais-Hits-item'
}
data-fccobjectid={hit.objectID}
key={hit.objectID}
>
{noHits ? (
<NoHitsSuggestion
handleMouseEnter={handleMouseEnter}
handleMouseLeave={handleMouseLeave}
title={noHitsTitle}
/>
) : (
<Suggestion
handleMouseEnter={handleMouseEnter}
handleMouseLeave={handleMouseLeave}
hit={hit}
/>
)}
</li>
))}
</ul>
</div>
);
}
export default SearchHits;

View File

@@ -1,6 +1,6 @@
import React from 'react';
import { Hit } from 'react-instantsearch-core';
import { Highlight } from 'react-instantsearch-dom';
import { Highlight } from 'react-instantsearch';
import type { Hit } from './types';
interface SuggestionProps {
hit: Hit;
@@ -29,7 +29,7 @@ const Suggestion = ({
>
<span className='hit-name'>
{dropdownFooter ? (
<Highlight attribute='query' hit={hit} tagName='strong' />
<Highlight attribute='query' hit={hit} />
) : (
<Highlight attribute='title' hit={hit} />
)}

View File

@@ -88,6 +88,7 @@
.fcc_searchBar .ais-Highlight-highlighted {
background-color: transparent;
font-style: normal;
color: white;
font-weight: bold;
}
@@ -134,6 +135,10 @@
background-color: var(--gray-75);
}
.ais-Hits-item:hover {
background-color: var(--blue-dark);
}
/* Hit selected with arrow keys or mouse */
.selected {
background-color: var(--blue-dark);
@@ -152,7 +157,7 @@ and arrow keys */
padding: 6.5px 8px 8px;
}
.fcc_suggestion_footer .hit-name .ais-Highlight {
.fcc_suggestion_footer span[class='ais-Highlight-nonHighlighted'] {
font-weight: bold;
}

View File

@@ -0,0 +1,6 @@
import type { Hit as InstantSearchHit } from 'instantsearch.js';
export interface Hit extends InstantSearchHit {
url: string;
title?: string;
}

View File

@@ -1,12 +1,13 @@
import { Location } from '@reach/router';
import type { WindowLocation } from '@reach/router';
import type { SearchOptions } from 'instantsearch.js';
import algoliasearch from 'algoliasearch/lite';
import React, { useEffect, useRef } from 'react';
import type { ReactNode } from 'react';
import { InstantSearch, Configure } from 'react-instantsearch-dom';
import { connect } from 'react-redux';
import { useMediaQuery } from 'react-responsive';
import { createSelector } from 'reselect';
import { Configure, InstantSearch } from 'react-instantsearch';
import { algoliaAppId, algoliaAPIKey } from '../../../config/env.json';
import { newsIndex } from '../../utils/algolia-locale-setup';
@@ -22,8 +23,25 @@ const searchClient =
algoliaAppId && algoliaAPIKey
? algoliasearch(algoliaAppId, algoliaAPIKey)
: {
// eslint-disable-next-line @typescript-eslint/no-empty-function
search: () => {}
// When Algolia is not configured, the client will still render,
// the result query is returned to the search component as a mock
//(mainly for testing without relying on Playwright fuffill route as
// there is no request made without a key).
search: (
request: Array<{ indexName: string; params: SearchOptions }>
) => {
return Promise.resolve({
results: [
{
hits: [],
query: request[0].params?.query === 'test' ? 'test' : '',
params:
'highlightPostTag=__%2Fais-highlight__&highlightPreTag=__ais-highlight__&hitsPerPage=5&query=sdefpuhsdfpiouhdsfgp',
index: 'news'
}
]
});
}
};
const mapStateToProps = createSelector(
@@ -81,22 +99,23 @@ function InstantSearchRoot({
}, []);
const propsQuery = query;
function onSearchStateChange({ query }: { query: string | undefined }): void {
if (propsQuery === query || typeof query === 'undefined') {
function onSearchStateChange(query: string | undefined): void {
if (propsQuery === query) {
return;
}
updateSearchQuery(query);
updateSearchQuery(query ?? '');
}
const hitsPerPage = isSmallHeight ? 8 : 5;
return (
<InstantSearch
indexName={newsIndex}
onSearchStateChange={onSearchStateChange}
onStateChange={({ uiState }) => {
onSearchStateChange(uiState.news?.query);
}}
searchClient={searchClient}
searchState={{ query }}
>
<Configure hitsPerPage={hitsPerPage} />
<Configure hitsPerPage={hitsPerPage} query={propsQuery} />
{children}
</InstantSearch>
);

View File

@@ -3,86 +3,330 @@
{
"hits": [
{
"title": "Article 1",
"objectID": "Article 1",
"title": "How to Scrape Wikipedia Articles with Python",
"author": {
"name": "Dirk Hoekstra",
"url": "https://www.freecodecamp.org/news/author/dirk/",
"profileImage": "https://www.gravatar.com/avatar/70c37f72ed7bd4bde1524f41f385ee46?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Web Scraping",
"url": "https://www.freecodecamp.org/news/tag/web-scraping/"
},
{
"name": "Python",
"url": "https://www.freecodecamp.org/news/tag/python/"
}
],
"url": "https://www.freecodecamp.org/news/scraping-wikipedia-articles-with-python/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2020/08/artem-maltsev-vgQFlPq8tVQ-unsplash-1.jpg",
"publishedAt": "2020-08-24T17:24:24.000Z",
"publishedAtTimestamp": 1598289864,
"filterTerms": [],
"objectID": "5f9c9913740569d1a4ca1db1",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 1",
"matchLevel": "full"
"value": "How to Scrape Wikipedia __ais-highlight__Article__/ais-highlight__s with Python",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 2",
"objectID": "Article 2",
"title": "How to Give Feedback on a freeCodeCamp Article",
"author": {
"name": "freeCodeCamp.org",
"url": "https://www.freecodecamp.org/news/author/freecodecamp/",
"profileImage": "https://www.gravatar.com/avatar/fcda43852608626fe46d7fd43145766e?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Community",
"url": "https://www.freecodecamp.org/news/tag/community/"
}
],
"url": "https://www.freecodecamp.org/news/how-to-give-feedback-on-a-freecodecamp-article/",
"featureImage": "https://images.unsplash.com/photo-1504618223053-559bdef9dd5a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ",
"publishedAt": "2020-04-08T17:16:00.000Z",
"publishedAtTimestamp": 1586366160,
"filterTerms": [],
"objectID": "5f9c9bb8740569d1a4ca2d7f",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 2",
"matchLevel": "full"
"value": "How to Give Feedback on a freeCodeCamp __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 3",
"objectID": "Article 3",
"title": "How To Embed Multiple Choice Quiz Questions into Your Article",
"author": {
"name": "Alexander Arobelidze",
"url": "https://www.freecodecamp.org/news/author/alex-arobelidze/",
"profileImage": "https://www.freecodecamp.org/news/content/images/2020/02/fcc-1.JPG"
},
"tags": [
{
"name": "Blog",
"url": "https://www.freecodecamp.org/news/tag/blog/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/multiple-choice-quiz-template/",
"featureImage": "https://images.unsplash.com/photo-1501504905252-473c47e087f8?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ",
"publishedAt": "2020-04-06T08:30:53.000Z",
"publishedAtTimestamp": 1586161853,
"filterTerms": [],
"objectID": "5f9c9bc5740569d1a4ca2dcf",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 3",
"matchLevel": "full"
"value": "How To Embed Multiple Choice Quiz Questions into Your __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 4",
"objectID": "Article 4",
"title": "How to Add a Table of Contents to Your Blog Post or Article",
"author": {
"name": "Colby Fayock",
"url": "https://www.freecodecamp.org/news/author/colbyfayock/",
"profileImage": "https://www.freecodecamp.org/news/content/images/2020/03/star-wars-hug-yellow-cropped.png"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Writing Tips",
"url": "https://www.freecodecamp.org/news/tag/writing-tips/"
},
{
"name": "Blog",
"url": "https://www.freecodecamp.org/news/tag/blog/"
},
{
"name": "Blogger",
"url": "https://www.freecodecamp.org/news/tag/blogger/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
},
{
"name": "Publishing",
"url": "https://www.freecodecamp.org/news/tag/publishing/"
}
],
"url": "https://www.freecodecamp.org/news/how-to-add-a-table-of-contents-to-your-blog-post-or-article/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2020/02/table-of-contents.jpg",
"publishedAt": "2020-02-12T15:45:00.000Z",
"publishedAtTimestamp": 1581522300,
"filterTerms": [],
"objectID": "5f9c9c9d740569d1a4ca332b",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 4",
"matchLevel": "full"
"value": "How to Add a Table of Contents to Your Blog Post or __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 5",
"objectID": "Article 5",
"title": "What 500+ blog posts taught me about writing great articles",
"author": {
"name": "Burke Holland",
"url": "https://www.freecodecamp.org/news/author/burkeholland/",
"profileImage": "https://www.gravatar.com/avatar/59247a80fdf2632dfea43b8824e07cdb?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/what-500-blog-posts-taught-me-about-writing-great-articles/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2019/07/writing-technical-articles-banner.png",
"publishedAt": "2019-07-31T15:00:00.000Z",
"publishedAtTimestamp": 1564585200,
"filterTerms": [],
"objectID": "5f9ca121740569d1a4ca4cde",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 5",
"matchLevel": "full"
"value": "What 500+ blog posts taught me about writing great __ais-highlight__article__/ais-highlight__s",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 6",
"objectID": "Article 6",
"title": "What 500+ blog posts taught me about writing great articles",
"author": {
"name": "Burke Holland",
"url": "https://www.freecodecamp.org/news/author/burkeholland/",
"profileImage": "https://www.gravatar.com/avatar/59247a80fdf2632dfea43b8824e07cdb?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/what-500-blog-posts-taught-me-about-writing-great-articles/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2019/07/writing-technical-articles-banner.png",
"publishedAt": "2019-07-31T15:00:00.000Z",
"publishedAtTimestamp": 1564585200,
"filterTerms": [],
"objectID": "5f9ca121740569d1a4ca4cde",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 6",
"matchLevel": "full"
"value": "What 500+ blog posts taught me about writing great __ais-highlight__article__/ais-highlight__s",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 7",
"objectID": "Article 7",
"title": "What 500+ blog posts taught me about writing great articles",
"author": {
"name": "Burke Holland",
"url": "https://www.freecodecamp.org/news/author/burkeholland/",
"profileImage": "https://www.gravatar.com/avatar/59247a80fdf2632dfea43b8824e07cdb?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/what-500-blog-posts-taught-me-about-writing-great-articles/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2019/07/writing-technical-articles-banner.png",
"publishedAt": "2019-07-31T15:00:00.000Z",
"publishedAtTimestamp": 1564585200,
"filterTerms": [],
"objectID": "5f9ca121740569d1a4ca4cde",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 7",
"matchLevel": "full"
"value": "What 500+ blog posts taught me about writing great __ais-highlight__article__/ais-highlight__s",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 8",
"objectID": "Article 8",
"title": "What 500+ blog posts taught me about writing great articles",
"author": {
"name": "Burke Holland",
"url": "https://www.freecodecamp.org/news/author/burkeholland/",
"profileImage": "https://www.gravatar.com/avatar/59247a80fdf2632dfea43b8824e07cdb?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/what-500-blog-posts-taught-me-about-writing-great-articles/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2019/07/writing-technical-articles-banner.png",
"publishedAt": "2019-07-31T15:00:00.000Z",
"publishedAtTimestamp": 1564585200,
"filterTerms": [],
"objectID": "5f9ca121740569d1a4ca4cde",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 8",
"matchLevel": "full"
"value": "What 500+ blog posts taught me about writing great __ais-highlight__article__/ais-highlight__s",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
}
]
],
"nbHits": 30,
"page": 0,
"nbPages": 6,
"hitsPerPage": 5,
"exhaustiveNbHits": true,
"exhaustiveTypo": true,
"exhaustive": {
"nbHits": true,
"typo": true
},
"query": "article",
"params": "highlightPostTag=__%2Fais-highlight__&highlightPreTag=__ais-highlight__&hitsPerPage=5&query=article",
"index": "news",
"renderingContent": {},
"processingTimeMS": 1,
"processingTimingsMS": {
"_request": {
"roundTrip": 90
}
}
}
]
}

View File

@@ -3,56 +3,216 @@
{
"hits": [
{
"title": "Article 1",
"objectID": "Article 1",
"title": "How to Scrape Wikipedia Articles with Python",
"author": {
"name": "Dirk Hoekstra",
"url": "https://www.freecodecamp.org/news/author/dirk/",
"profileImage": "https://www.gravatar.com/avatar/70c37f72ed7bd4bde1524f41f385ee46?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Web Scraping",
"url": "https://www.freecodecamp.org/news/tag/web-scraping/"
},
{
"name": "Python",
"url": "https://www.freecodecamp.org/news/tag/python/"
}
],
"url": "https://www.freecodecamp.org/news/scraping-wikipedia-articles-with-python/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2020/08/artem-maltsev-vgQFlPq8tVQ-unsplash-1.jpg",
"publishedAt": "2020-08-24T17:24:24.000Z",
"publishedAtTimestamp": 1598289864,
"filterTerms": [],
"objectID": "5f9c9913740569d1a4ca1db1",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 1",
"matchLevel": "full"
"value": "How to Scrape Wikipedia __ais-highlight__Article__/ais-highlight__s with Python",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 2",
"objectID": "Article 2",
"title": "How to Give Feedback on a freeCodeCamp Article",
"author": {
"name": "freeCodeCamp.org",
"url": "https://www.freecodecamp.org/news/author/freecodecamp/",
"profileImage": "https://www.gravatar.com/avatar/fcda43852608626fe46d7fd43145766e?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Community",
"url": "https://www.freecodecamp.org/news/tag/community/"
}
],
"url": "https://www.freecodecamp.org/news/how-to-give-feedback-on-a-freecodecamp-article/",
"featureImage": "https://images.unsplash.com/photo-1504618223053-559bdef9dd5a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ",
"publishedAt": "2020-04-08T17:16:00.000Z",
"publishedAtTimestamp": 1586366160,
"filterTerms": [],
"objectID": "5f9c9bb8740569d1a4ca2d7f",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 2",
"matchLevel": "full"
"value": "How to Give Feedback on a freeCodeCamp __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 3",
"objectID": "Article 3",
"title": "How To Embed Multiple Choice Quiz Questions into Your Article",
"author": {
"name": "Alexander Arobelidze",
"url": "https://www.freecodecamp.org/news/author/alex-arobelidze/",
"profileImage": "https://www.freecodecamp.org/news/content/images/2020/02/fcc-1.JPG"
},
"tags": [
{
"name": "Blog",
"url": "https://www.freecodecamp.org/news/tag/blog/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/multiple-choice-quiz-template/",
"featureImage": "https://images.unsplash.com/photo-1501504905252-473c47e087f8?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=2000&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ",
"publishedAt": "2020-04-06T08:30:53.000Z",
"publishedAtTimestamp": 1586161853,
"filterTerms": [],
"objectID": "5f9c9bc5740569d1a4ca2dcf",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 3",
"matchLevel": "full"
"value": "How To Embed Multiple Choice Quiz Questions into Your __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 4",
"objectID": "Article 4",
"title": "How to Add a Table of Contents to Your Blog Post or Article",
"author": {
"name": "Colby Fayock",
"url": "https://www.freecodecamp.org/news/author/colbyfayock/",
"profileImage": "https://www.freecodecamp.org/news/content/images/2020/03/star-wars-hug-yellow-cropped.png"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Writing Tips",
"url": "https://www.freecodecamp.org/news/tag/writing-tips/"
},
{
"name": "Blog",
"url": "https://www.freecodecamp.org/news/tag/blog/"
},
{
"name": "Blogger",
"url": "https://www.freecodecamp.org/news/tag/blogger/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
},
{
"name": "Publishing",
"url": "https://www.freecodecamp.org/news/tag/publishing/"
}
],
"url": "https://www.freecodecamp.org/news/how-to-add-a-table-of-contents-to-your-blog-post-or-article/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2020/02/table-of-contents.jpg",
"publishedAt": "2020-02-12T15:45:00.000Z",
"publishedAtTimestamp": 1581522300,
"filterTerms": [],
"objectID": "5f9c9c9d740569d1a4ca332b",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 4",
"matchLevel": "full"
"value": "How to Add a Table of Contents to Your Blog Post or __ais-highlight__Article__/ais-highlight__",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
},
{
"title": "Article 5",
"objectID": "Article 5",
"title": "What 500+ blog posts taught me about writing great articles",
"author": {
"name": "Burke Holland",
"url": "https://www.freecodecamp.org/news/author/burkeholland/",
"profileImage": "https://www.gravatar.com/avatar/59247a80fdf2632dfea43b8824e07cdb?s=250&d=mm&r=x"
},
"tags": [
{
"name": "Writing",
"url": "https://www.freecodecamp.org/news/tag/writing/"
},
{
"name": "Technical Writing",
"url": "https://www.freecodecamp.org/news/tag/technical-writing/"
},
{
"name": "Blogging",
"url": "https://www.freecodecamp.org/news/tag/blogging/"
}
],
"url": "https://www.freecodecamp.org/news/what-500-blog-posts-taught-me-about-writing-great-articles/",
"featureImage": "https://www.freecodecamp.org/news/content/images/2019/07/writing-technical-articles-banner.png",
"publishedAt": "2019-07-31T15:00:00.000Z",
"publishedAtTimestamp": 1564585200,
"filterTerms": [],
"objectID": "5f9ca121740569d1a4ca4cde",
"_highlightResult": {
"title": {
"value": "<ais-highlight-0000000000>Article</ais-highlight-0000000000> 5",
"matchLevel": "full"
"value": "What 500+ blog posts taught me about writing great __ais-highlight__article__/ais-highlight__s",
"matchLevel": "full",
"fullyHighlighted": false,
"matchedWords": [
"article"
]
}
}
}
]
],
"nbHits": 30,
"page": 0,
"nbPages": 6,
"hitsPerPage": 5,
"exhaustiveNbHits": true,
"exhaustiveTypo": true,
"exhaustive": {
"nbHits": true,
"typo": true
},
"query": "article",
"params": "highlightPostTag=__%2Fais-highlight__&highlightPreTag=__ais-highlight__&hitsPerPage=5&query=article",
"index": "news",
"renderingContent": {},
"processingTimeMS": 1,
"processingTimingsMS": {
"_request": {
"roundTrip": 90
}
}
}
]
}

View File

@@ -0,0 +1,29 @@
{
"results": [
{
"hits": [],
"nbHits": 0,
"page": 0,
"nbPages": 0,
"hitsPerPage": 5,
"exhaustiveNbHits": true,
"exhaustiveTypo": true,
"exhaustive": {
"nbHits": true,
"typo": true
},
"query": "sdefpuhsdfpiouhdsfgp",
"params": "highlightPostTag=__%2Fais-highlight__&highlightPreTag=__ais-highlight__&hitsPerPage=5&query=sdefpuhsdfpiouhdsfgp",
"index": "news",
"renderingContent": {},
"processingTimeMS": 1,
"processingTimingsMS": {
"_request": {
"roundTrip": 94
},
"total": 1
},
"serverTimeMS": 1
}
]
}

View File

@@ -2,6 +2,7 @@ import { test, expect, type Page } from '@playwright/test';
import translations from '../client/i18n/locales/english/translations.json';
import algoliaEightHits from './fixtures/algolia-eight-hits.json';
import algoliaFiveHits from './fixtures/algolia-five-hits.json';
import algoliaNoHits from './fixtures/algolia-no-hits.json';
const haveApiKeys =
process.env.ALGOLIA_APP_ID !== 'app_id_from_algolia_dashboard' &&
@@ -22,7 +23,7 @@ const getSearchInput = async ({
await menuButton.click();
}
return page.getByLabel('Search');
return page.getByLabel('Search', { exact: true });
};
const search = async ({
@@ -38,6 +39,8 @@ const search = async ({
await searchInput.fill(query);
};
// Mock Algolia requests to prevent hitting Algolia server unnecessarily.
// Comment out the function call if you want to test against the real server.
const mockAlgolia = async ({
page,
hitsPerPage
@@ -46,16 +49,16 @@ const mockAlgolia = async ({
hitsPerPage: number;
}) => {
if (hitsPerPage === 8) {
await page.route(/\w+(\.algolia\.net|\.algolianet\.com)/, async route => {
await page.route(/dsn.algolia.net/, async route => {
await route.fulfill({ json: algoliaEightHits });
});
} else if (hitsPerPage === 5) {
await page.route(/\w+(\.algolia\.net|\.algolianet\.com)/, async route => {
await page.route(/dsn.algolia.net/, async route => {
await route.fulfill({ json: algoliaFiveHits });
});
} else if (hitsPerPage === 0) {
await page.route(/\w+(\.algolia\.net|\.algolianet\.com)/, async route => {
await route.fulfill({ json: {} });
await page.route(/dsn.algolia.net/, async route => {
await route.fulfill({ json: algoliaNoHits });
});
}
};
@@ -63,22 +66,14 @@ const mockAlgolia = async ({
test.describe('Search bar', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/learn');
// Mock Algolia requests to prevent hitting Algolia server unnecessarily.
// Comment out this line if you want to test against the real server.
await mockAlgolia({ page, hitsPerPage: 8 });
});
test('should display correctly', async ({ page, isMobile }) => {
const searchInput = await getSearchInput({ page, isMobile });
await expect(searchInput).toBeVisible();
// Because we're mocking Algolia requests, the placeholder
// should be the default one.
await expect(searchInput).toHaveAttribute(
'placeholder',
translations.search.placeholder.default
);
await expect(searchInput).toHaveAttribute('placeholder', /Search/i);
await expect(
page.getByRole('button', { name: 'Submit search terms' })
).toBeVisible();
@@ -89,7 +84,7 @@ test.describe('Search bar', () => {
isMobile
}) => {
test.skip(!haveApiKeys, 'This test requires Algolia API keys');
await mockAlgolia({ page, hitsPerPage: 8 });
await search({ page, isMobile, query: 'article' });
// Wait for the search results to show up
@@ -114,7 +109,7 @@ test.describe('Search bar', () => {
isMobile
}) => {
test.skip(!haveApiKeys, 'This test requires Algolia API keys');
await mockAlgolia({ page, hitsPerPage: 8 });
await search({ page, isMobile, query: 'article' });
// Wait for the search results to show up
@@ -139,7 +134,7 @@ test.describe('Search bar', () => {
isMobile
}) => {
await mockAlgolia({ page, hitsPerPage: 0 });
await search({ page, isMobile, query: '!@#$%^' });
await search({ page, isMobile, query: 'test' });
const resultList = page.getByRole('list', { name: 'Search results' });
await expect(resultList.getByRole('listitem')).toHaveCount(1);

385
pnpm-lock.yaml generated
View File

@@ -526,37 +526,40 @@ importers:
version: 4.20.10
gatsby:
specifier: 3.15.0
version: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
version: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-cli:
specifier: 3.15.0
version: 3.15.0
gatsby-plugin-create-client-paths:
specifier: 3.15.0
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby-plugin-manifest:
specifier: 3.15.0
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-pnpm:
specifier: ^1.2.10
version: 1.2.10(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
version: 1.2.10(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby-plugin-postcss:
specifier: 4.15.0
version: 4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(postcss@8.4.35)(webpack@5.90.3)
version: 4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(postcss@8.4.35)(webpack@5.90.3)
gatsby-plugin-react-helmet:
specifier: 4.15.0
version: 4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(react-helmet@6.1.0(react@16.14.0))
version: 4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(react-helmet@6.1.0(react@16.14.0))
gatsby-plugin-remove-serviceworker:
specifier: 1.0.0
version: 1.0.0
gatsby-source-filesystem:
specifier: 3.15.0
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
version: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby-transformer-remark:
specifier: 5.25.1
version: 5.25.1(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
version: 5.25.1(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
i18next:
specifier: 22.5.1
version: 22.5.1
instantsearch.js:
specifier: 4.75.3
version: 4.75.3(algoliasearch@4.22.1)
lodash:
specifier: 4.17.21
version: 4.17.21
@@ -617,12 +620,12 @@ importers:
react-i18next:
specifier: 12.3.1
version: 12.3.1(i18next@22.5.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)
react-instantsearch:
specifier: 7.13.6
version: 7.13.6(algoliasearch@4.22.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)
react-instantsearch-core:
specifier: 6.40.4
version: 6.40.4(algoliasearch@4.22.1)(react@16.14.0)
react-instantsearch-dom:
specifier: 6.40.4
version: 6.40.4(algoliasearch@4.22.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)
specifier: 7.13.6
version: 7.13.6(algoliasearch@4.22.1)(react@16.14.0)
react-monaco-editor:
specifier: 0.40.0
version: 0.40.0(@types/react@16.14.56)(react@16.14.0)
@@ -744,12 +747,6 @@ importers:
'@types/react-helmet':
specifier: 6.1.11
version: 6.1.11
'@types/react-instantsearch-core':
specifier: 6.26.10
version: 6.26.10
'@types/react-instantsearch-dom':
specifier: 6.12.8
version: 6.12.8
'@types/react-redux':
specifier: 7.1.33
version: 7.1.33
@@ -794,7 +791,7 @@ importers:
version: 16.4.5
gatsby-plugin-webpack-bundle-analyser-v2:
specifier: 1.1.32
version: 1.1.32(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
version: 1.1.32(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
i18next-fs-backend:
specifier: 2.3.2
version: 2.3.2
@@ -827,7 +824,7 @@ importers:
version: 10.9.2(@types/node@20.12.8)(typescript@5.2.2)
webpack:
specifier: 5.90.3
version: 5.90.3(webpack-cli@4.10.0)
version: 5.90.3
curriculum:
devDependencies:
@@ -1116,7 +1113,7 @@ importers:
version: 4.3.12
'@types/copy-webpack-plugin':
specifier: ^8.0.1
version: 8.0.1(webpack-cli@4.10.0)
version: 8.0.1(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))
'@types/enzyme':
specifier: 3.10.16
version: 3.10.16
@@ -1134,13 +1131,13 @@ importers:
version: 1.6.0(typescript@5.4.5)
babel-loader:
specifier: 8.3.0
version: 8.3.0(@babel/core@7.23.7)(webpack@5.90.3)
version: 8.3.0(@babel/core@7.23.7)(webpack@5.90.3(webpack-cli@4.10.0))
chai:
specifier: 4.4.1
version: 4.4.1
copy-webpack-plugin:
specifier: 9.1.0
version: 9.1.0(webpack@5.90.3)
version: 9.1.0(webpack@5.90.3(webpack-cli@4.10.0))
enzyme:
specifier: 3.11.0
version: 3.11.0
@@ -4124,6 +4121,9 @@ packages:
'@types/debug@4.1.9':
resolution: {integrity: sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==}
'@types/dom-speech-recognition@0.0.1':
resolution: {integrity: sha512-udCxb8DvjcDKfk1WTBzDsxFbLgYxmQGKrE/ricoMqHRNjSlSUCcamVTA5lIQqzY10mY5qCY0QDwBfFEwhfoDPw==}
'@types/enzyme-adapter-react-16@1.0.9':
resolution: {integrity: sha512-z24MMxGtUL8HhXdye3tWzjp+19QTsABqLaX2oOZpxMPHRJgLfahQmOeTTrEBQd9ogW20+UmPBXD9j+XOasFHvw==}
@@ -4175,12 +4175,18 @@ packages:
'@types/glob@8.1.0':
resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
'@types/google.maps@3.58.1':
resolution: {integrity: sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==}
'@types/graceful-fs@4.1.7':
resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==}
'@types/hast@2.3.6':
resolution: {integrity: sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==}
'@types/hogan.js@3.0.5':
resolution: {integrity: sha512-/uRaY3HGPWyLqOyhgvW9Aa43BNnLZrNeQxl2p8wqId4UHMfPKolSB+U7BlZyO1ng7MkLnyEAItsBzCG0SDhqrA==}
'@types/hoist-non-react-statics@3.3.2':
resolution: {integrity: sha512-YIQtIg4PKr7ZyqNPZObpxfHsHEmuB8dXCxd6qVcGuQVDK2bpsF7bYNnBJ4Nn7giuACZg+WewExgrtAJ3XnA4Xw==}
@@ -4334,12 +4340,6 @@ packages:
'@types/react-helmet@6.1.11':
resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
'@types/react-instantsearch-core@6.26.10':
resolution: {integrity: sha512-izn21BqXtO3GA5Tx3x7SP6kfk1GJppkVdowuenKIOUj1sCJ3VHwoggsqVWv1DYVcsS8wydjR8Ra91XtI2a12rw==}
'@types/react-instantsearch-dom@6.12.8':
resolution: {integrity: sha512-LKrV3yqtar29TqkG76sfw7k6s95BXRvESKIarNiniXdC+6pioZ23KOx71WJNnwiWbHfeyeSILsKStwDpVWry4A==}
'@types/react-redux@7.1.33':
resolution: {integrity: sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==}
@@ -4821,13 +4821,8 @@ packages:
ajv@8.12.0:
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
algoliasearch-helper@3.14.0:
resolution: {integrity: sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ==}
peerDependencies:
algoliasearch: '>= 3.1 < 6'
algoliasearch-helper@3.14.2:
resolution: {integrity: sha512-FjDSrjvQvJT/SKMW74nPgFpsoPUwZCzGbCqbp8HhBFfSk/OvNFxzCaCmuO0p7AWeLy1gD+muFwQEkBwcl5H4pg==}
algoliasearch-helper@3.22.5:
resolution: {integrity: sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==}
peerDependencies:
algoliasearch: '>= 3.1 < 6'
@@ -7987,6 +7982,10 @@ packages:
hmac-drbg@1.0.1:
resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
hogan.js@3.0.2:
resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==}
hasBin: true
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
@@ -8008,6 +8007,9 @@ packages:
resolution: {integrity: sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==}
engines: {node: '>=4.0.0'}
htm@3.1.1:
resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
html-element-map@1.3.1:
resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==}
@@ -8263,6 +8265,14 @@ packages:
resolution: {integrity: sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==}
hasBin: true
instantsearch-ui-components@0.9.0:
resolution: {integrity: sha512-ugQ+XdPx3i3Sxu+woRo6tPE0Fz/kWd4KblTUfZD1TZZBsm/8qFvcbg5dVBDvXX9v7ntoyugXCzC/XCZMzrSkig==}
instantsearch.js@4.75.3:
resolution: {integrity: sha512-WVVWlqR3XDqJjrEt4+kQXudrdxWIhkxzUhwxFnccB/RdsMvVHp+N6bIcVSIMGyRo/rGfGZ5Rki2E++iGwOljtA==}
peerDependencies:
algoliasearch: '>= 3.1 < 6'
internal-slot@1.0.5:
resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
engines: {node: '>= 0.4'}
@@ -9892,6 +9902,10 @@ packages:
mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
mkdirp@0.3.0:
resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==}
deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@@ -10935,6 +10949,9 @@ packages:
resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
preact@10.24.3:
resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==}
prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
@@ -11260,19 +11277,18 @@ packages:
react-native:
optional: true
react-instantsearch-core@6.40.4:
resolution: {integrity: sha512-sEOgRU2MKL8edO85sNHvKlZ5yq9OFw++CDsEqYpHJvbWLE/2J2N49XAUY90kior09I2kBkbgowBbov+Py1AubQ==}
react-instantsearch-core@7.13.6:
resolution: {integrity: sha512-ZFSGnhbqI8OF7Pi1MYkSFBJxd9A5qFJkb7y6Xd6sUm98xu6D4U4P6uvxPucihPwgTTj8YwTGe/lwcDIYPGqXNw==}
peerDependencies:
algoliasearch: '>= 3.1 < 5'
react: '>= 16.3.0 < 19'
algoliasearch: '>= 3.1 < 6'
react: '>= 16.8.0 < 19'
react-instantsearch-dom@6.40.4:
resolution: {integrity: sha512-Oy8EKEOg/dfTE8tHc7GZRlzUdbZY4Mxas1x2OtvSNui+YAbIWafIf1g98iOGyVTB2qI5WH91YyUJTLPNfLrs6Q==}
deprecated: package has moved to react-instantsearch
react-instantsearch@7.13.6:
resolution: {integrity: sha512-uEnNPbasXTDHMpmH6/P0EszrSPCzKyLgxHxj7+z8J3+RYsG2Ed7gG25mD5HlNLnH4ca8p9W+ZQE2f/R3M8GK6w==}
peerDependencies:
algoliasearch: '>= 3.1 < 5'
react: '>= 16.3.0 < 19'
react-dom: '>= 16.3.0 < 19'
algoliasearch: '>= 3.1 < 6'
react: '>= 16.8.0 < 19'
react-dom: '>= 16.8.0 < 19'
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -11804,6 +11820,9 @@ packages:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines: {node: '>= 10.13.0'}
search-insights@2.17.2:
resolution: {integrity: sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==}
section-matter@1.0.0:
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
engines: {node: '>=4'}
@@ -13109,6 +13128,11 @@ packages:
urlpattern-polyfill@10.0.0:
resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
use-sync-external-store@1.2.2:
resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
use@3.1.1:
resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
engines: {node: '>=0.10.0'}
@@ -17551,7 +17575,7 @@ snapshots:
react-refresh: 0.9.0
schema-utils: 2.7.1
source-map: 0.7.4
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
'@polka/url@1.0.0-next.23': {}
@@ -18291,7 +18315,7 @@ snapshots:
'@types/cookiejar@2.1.2': {}
'@types/copy-webpack-plugin@8.0.1(webpack-cli@4.10.0)':
'@types/copy-webpack-plugin@8.0.1(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))':
dependencies:
'@types/node': 20.8.0
tapable: 2.2.1
@@ -18312,6 +18336,8 @@ snapshots:
dependencies:
'@types/ms': 0.7.32
'@types/dom-speech-recognition@0.0.1': {}
'@types/enzyme-adapter-react-16@1.0.9':
dependencies:
'@types/enzyme': 3.10.18
@@ -18392,6 +18418,8 @@ snapshots:
'@types/minimatch': 5.1.2
'@types/node': 20.12.8
'@types/google.maps@3.58.1': {}
'@types/graceful-fs@4.1.7':
dependencies:
'@types/node': 20.12.8
@@ -18400,6 +18428,8 @@ snapshots:
dependencies:
'@types/unist': 2.0.8
'@types/hogan.js@3.0.5': {}
'@types/hoist-non-react-statics@3.3.2':
dependencies:
'@types/react': 16.14.56
@@ -18556,17 +18586,6 @@ snapshots:
dependencies:
'@types/react': 16.14.56
'@types/react-instantsearch-core@6.26.10':
dependencies:
'@types/react': 16.14.56
algoliasearch: 4.22.1
algoliasearch-helper: 3.14.2(algoliasearch@4.22.1)
'@types/react-instantsearch-dom@6.12.8':
dependencies:
'@types/react': 16.14.56
'@types/react-instantsearch-core': 6.26.10
'@types/react-redux@7.1.33':
dependencies:
'@types/hoist-non-react-statics': 3.3.2
@@ -19045,17 +19064,17 @@ snapshots:
'@webassemblyjs/ast': 1.11.6
'@xtuc/long': 4.2.2
'@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.90.3)':
'@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))(webpack@5.90.3(webpack-cli@4.10.0))':
dependencies:
webpack: 5.90.3(webpack-cli@4.10.0)
webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
'@webpack-cli/info@1.5.0(webpack-cli@4.10.0)':
'@webpack-cli/info@1.5.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))':
dependencies:
envinfo: 7.10.0
webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
'@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)':
'@webpack-cli/serve@1.7.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))':
dependencies:
webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
@@ -19182,12 +19201,7 @@ snapshots:
require-from-string: 2.0.2
uri-js: 4.4.1
algoliasearch-helper@3.14.0(algoliasearch@4.22.1):
dependencies:
'@algolia/events': 4.0.1
algoliasearch: 4.22.1
algoliasearch-helper@3.14.2(algoliasearch@4.22.1):
algoliasearch-helper@3.22.5(algoliasearch@4.22.1):
dependencies:
'@algolia/events': 4.0.1
algoliasearch: 4.22.1
@@ -19544,9 +19558,9 @@ snapshots:
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.90.3):
babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.90.3(webpack-cli@4.10.0)):
dependencies:
'@babel/core': 7.23.7
find-cache-dir: 3.3.2
@@ -19707,20 +19721,20 @@ snapshots:
dependencies:
prismjs: 1.29.0
babel-plugin-remove-graphql-queries@3.15.0(@babel/core@7.23.0)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
babel-plugin-remove-graphql-queries@3.15.0(@babel/core@7.23.0)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/core': 7.23.0
'@babel/runtime': 7.23.9
'@babel/types': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 2.15.0
babel-plugin-remove-graphql-queries@3.15.0(@babel/core@7.23.7)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
babel-plugin-remove-graphql-queries@3.15.0(@babel/core@7.23.7)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/core': 7.23.7
'@babel/runtime': 7.23.9
'@babel/types': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 2.15.0
babel-plugin-transform-react-remove-prop-types@0.4.24: {}
@@ -20667,7 +20681,7 @@ snapshots:
copy-descriptor@0.1.1: {}
copy-webpack-plugin@9.1.0(webpack@5.90.3):
copy-webpack-plugin@9.1.0(webpack@5.90.3(webpack-cli@4.10.0)):
dependencies:
fast-glob: 3.3.1
glob-parent: 6.0.2
@@ -20848,7 +20862,7 @@ snapshots:
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
semver: 7.6.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
css-mediaquery@0.1.2: {}
@@ -20861,7 +20875,7 @@ snapshots:
schema-utils: 3.3.0
serialize-javascript: 5.0.1
source-map: 0.6.1
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
css-select@4.3.0:
dependencies:
@@ -21762,7 +21776,7 @@ snapshots:
dependencies:
eslint: 8.57.0
eslint-config-react-app@6.0.0(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2))(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(babel-eslint@10.1.0(eslint@7.32.0))(eslint-plugin-flowtype@5.10.0(eslint@7.32.0))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0))(eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0))(eslint-plugin-react-hooks@4.6.0(eslint@7.32.0))(eslint-plugin-react@7.33.2(eslint@7.32.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2):
eslint-config-react-app@6.0.0(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2))(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(babel-eslint@10.1.0(eslint@7.32.0))(eslint-plugin-flowtype@5.10.0(eslint@7.32.0))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0))(eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0))(eslint-plugin-react-hooks@4.6.0(eslint@7.32.0))(eslint-plugin-react@7.33.2(eslint@7.32.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2):
dependencies:
'@typescript-eslint/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2)
'@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@5.2.2)
@@ -21770,7 +21784,7 @@ snapshots:
confusing-browser-globals: 1.0.11
eslint: 7.32.0
eslint-plugin-flowtype: 5.10.0(eslint@7.32.0)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@7.32.0)
eslint-plugin-react: 7.33.2(eslint@7.32.0)
eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0)
@@ -21791,7 +21805,7 @@ snapshots:
debug: 4.3.4(supports-color@8.1.1)
enhanced-resolve: 5.15.0
eslint: 8.57.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0)
eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0)
get-tsconfig: 4.7.2
globby: 13.2.2
@@ -21804,7 +21818,7 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-module-utils@2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0):
eslint-module-utils@2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0):
dependencies:
debug: 3.2.7(supports-color@5.5.0)
optionalDependencies:
@@ -21815,7 +21829,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0):
eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7(supports-color@5.5.0)
optionalDependencies:
@@ -21851,7 +21865,7 @@ snapshots:
- typescript
- utf-8-validate
eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0):
eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0):
dependencies:
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
@@ -21861,7 +21875,7 @@ snapshots:
doctrine: 2.1.0
eslint: 7.32.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0)
eslint-module-utils: 2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0)
has: 1.0.3
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -21888,7 +21902,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.57.0)
eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -22069,7 +22083,7 @@ snapshots:
micromatch: 4.0.5
normalize-path: 3.0.0
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
eslint@7.32.0:
dependencies:
@@ -22548,7 +22562,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
file-type@16.5.4:
dependencies:
@@ -22674,7 +22688,7 @@ snapshots:
semver: 5.7.2
tapable: 1.1.3
typescript: 5.2.2
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
worker-rpc: 0.1.1
optionalDependencies:
eslint: 7.32.0
@@ -22870,23 +22884,23 @@ snapshots:
lodash: 4.17.21
micromatch: 4.0.5
gatsby-plugin-create-client-paths@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-plugin-create-client-paths@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-plugin-manifest@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
gatsby-plugin-manifest@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 2.15.0
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
semver: 7.5.4
sharp: 0.29.3
transitivePeerDependencies:
- graphql
gatsby-plugin-page-creator@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
gatsby-plugin-page-creator@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
dependencies:
'@babel/runtime': 7.23.9
'@babel/traverse': 7.23.7
@@ -22894,10 +22908,10 @@ snapshots:
chokidar: 3.6.0
fs-exists-cached: 1.0.0
fs-extra: 10.1.0
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 2.15.0
gatsby-page-utils: 1.15.0
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-telemetry: 2.15.0
globby: 11.1.0
lodash: 4.17.21
@@ -22906,30 +22920,30 @@ snapshots:
- graphql
- supports-color
gatsby-plugin-pnpm@1.2.10(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-plugin-pnpm@1.2.10(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
lodash.get: 4.4.2
lodash.uniq: 4.5.0
gatsby-plugin-postcss@4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(postcss@8.4.35)(webpack@5.90.3):
gatsby-plugin-postcss@4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(postcss@8.4.35)(webpack@5.90.3):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
postcss: 8.4.35
postcss-loader: 4.3.0(postcss@8.4.35)(webpack@5.90.3)
transitivePeerDependencies:
- webpack
gatsby-plugin-react-helmet@4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(react-helmet@6.1.0(react@16.14.0)):
gatsby-plugin-react-helmet@4.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(react-helmet@6.1.0(react@16.14.0)):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
react-helmet: 6.1.0(react@16.14.0)
gatsby-plugin-remove-serviceworker@1.0.0: {}
gatsby-plugin-typescript@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-plugin-typescript@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/core': 7.23.7
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.7)
@@ -22937,23 +22951,23 @@ snapshots:
'@babel/plugin-proposal-optional-chaining': 7.17.12(@babel/core@7.23.7)
'@babel/preset-typescript': 7.23.3(@babel/core@7.23.7)
'@babel/runtime': 7.23.9
babel-plugin-remove-graphql-queries: 3.15.0(@babel/core@7.23.7)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
babel-plugin-remove-graphql-queries: 3.15.0(@babel/core@7.23.7)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
transitivePeerDependencies:
- supports-color
gatsby-plugin-utils@1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
gatsby-plugin-utils@1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0):
dependencies:
'@babel/runtime': 7.23.9
fastq: 1.15.0
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
graphql: 15.8.0
joi: 17.12.2
gatsby-plugin-webpack-bundle-analyser-v2@1.1.32(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-plugin-webpack-bundle-analyser-v2@1.1.32(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
webpack-bundle-analyzer: 4.10.1
transitivePeerDependencies:
- bufferutil
@@ -23034,14 +23048,14 @@ snapshots:
- supports-color
- utf-8-validate
gatsby-source-filesystem@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-source-filesystem@3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/runtime': 7.23.9
chokidar: 3.6.0
fastq: 1.15.0
file-type: 16.5.4
fs-extra: 10.1.0
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 2.15.0
got: 9.6.0
md5-file: 5.0.0
@@ -23070,10 +23084,10 @@ snapshots:
transitivePeerDependencies:
- encoding
gatsby-transformer-remark@5.25.1(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
gatsby-transformer-remark@5.25.1(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)):
dependencies:
'@babel/runtime': 7.23.9
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby: 3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2)
gatsby-core-utils: 3.25.0
gray-matter: 4.0.3
hast-util-raw: 6.1.0
@@ -23105,7 +23119,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2):
gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2):
dependencies:
'@babel/code-frame': 7.22.13
'@babel/core': 7.23.0
@@ -23131,7 +23145,7 @@ snapshots:
babel-plugin-add-module-exports: 1.0.4
babel-plugin-dynamic-import-node: 2.3.3
babel-plugin-lodash: 3.3.4
babel-plugin-remove-graphql-queries: 3.15.0(@babel/core@7.23.0)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
babel-plugin-remove-graphql-queries: 3.15.0(@babel/core@7.23.0)(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
babel-preset-gatsby: 1.15.0(@babel/core@7.23.0)(core-js@3.33.0)
better-opn: 2.1.1
bluebird: 3.7.2
@@ -23156,10 +23170,10 @@ snapshots:
devcert: 1.2.2
dotenv: 8.6.0
eslint: 7.32.0
eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2))(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(babel-eslint@10.1.0(eslint@7.32.0))(eslint-plugin-flowtype@5.10.0(eslint@7.32.0))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0))(eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0))(eslint-plugin-react-hooks@4.6.0(eslint@7.32.0))(eslint-plugin-react@7.33.2(eslint@7.32.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2)
eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2))(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(babel-eslint@10.1.0(eslint@7.32.0))(eslint-plugin-flowtype@5.10.0(eslint@7.32.0))(eslint-plugin-import@2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0))(eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0))(eslint-plugin-react-hooks@4.6.0(eslint@7.32.0))(eslint-plugin-react@7.33.2(eslint@7.32.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(eslint@7.32.0)(typescript@5.2.2)
eslint-plugin-flowtype: 5.10.0(eslint@7.32.0)
eslint-plugin-graphql: 4.0.0(@types/node@20.12.8)(graphql@15.8.0)(typescript@5.2.2)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@7.32.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@7.32.0)
eslint-plugin-react: 7.33.2(eslint@7.32.0)
eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0)
@@ -23179,9 +23193,9 @@ snapshots:
gatsby-graphiql-explorer: 1.15.0
gatsby-legacy-polyfills: 1.15.0
gatsby-link: 3.15.0(@gatsbyjs/reach-router@1.3.9(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)
gatsby-plugin-page-creator: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-typescript: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5)(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-page-creator: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-plugin-typescript: 3.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))
gatsby-plugin-utils: 1.15.0(gatsby@3.15.0(@types/node@20.12.8)(babel-eslint@10.1.0(eslint@7.32.0))(eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint-plugin-testing-library@3.9.0(eslint@7.32.0)(typescript@5.2.2))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)(typescript@5.2.2))(graphql@15.8.0)
gatsby-react-router-scroll: 4.15.0(@gatsbyjs/reach-router@1.3.9(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-dom@16.14.0(react@16.14.0))(react@16.14.0)
gatsby-telemetry: 2.15.0
gatsby-worker: 0.6.0
@@ -23249,7 +23263,7 @@ snapshots:
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.90.3))(webpack@5.90.3)
uuid: 3.4.0
v8-compile-cache: 2.4.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
webpack-dev-middleware: 4.3.0(webpack@5.90.3)
webpack-merge: 5.9.0
webpack-stats-plugin: 1.1.3
@@ -23760,6 +23774,11 @@ snapshots:
minimalistic-assert: 1.0.1
minimalistic-crypto-utils: 1.0.1
hogan.js@3.0.2:
dependencies:
mkdirp: 0.3.0
nopt: 1.0.10
hoist-non-react-statics@3.3.2:
dependencies:
react-is: 16.13.1
@@ -23780,6 +23799,8 @@ snapshots:
dependencies:
depd: 2.0.0
htm@3.1.1: {}
html-element-map@1.3.1:
dependencies:
array.prototype.filter: 1.0.3
@@ -24077,6 +24098,26 @@ snapshots:
undeclared-identifiers: 1.1.3
xtend: 4.0.2
instantsearch-ui-components@0.9.0:
dependencies:
'@babel/runtime': 7.23.9
instantsearch.js@4.75.3(algoliasearch@4.22.1):
dependencies:
'@algolia/events': 4.0.1
'@types/dom-speech-recognition': 0.0.1
'@types/google.maps': 3.58.1
'@types/hogan.js': 3.0.5
'@types/qs': 6.9.8
algoliasearch: 4.22.1
algoliasearch-helper: 3.22.5(algoliasearch@4.22.1)
hogan.js: 3.0.2
htm: 3.1.1
instantsearch-ui-components: 0.9.0
preact: 10.24.3
qs: 6.5.3
search-insights: 2.17.2
internal-slot@1.0.5:
dependencies:
get-intrinsic: 1.2.4
@@ -26315,7 +26356,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
webpack-sources: 1.4.3
minimalistic-assert@1.0.1: {}
@@ -26355,6 +26396,8 @@ snapshots:
mkdirp-classic@0.5.3: {}
mkdirp@0.3.0: {}
mkdirp@0.5.6:
dependencies:
minimist: 1.2.8
@@ -26417,7 +26460,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
monaco-editor: 0.28.1
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
monaco-editor@0.28.1: {}
@@ -26719,7 +26762,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
nwsapi@2.2.7: {}
@@ -27298,7 +27341,7 @@ snapshots:
postcss: 8.4.35
schema-utils: 3.3.0
semver: 7.6.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
postcss-loader@5.3.0(postcss@8.4.35)(webpack@5.90.3):
dependencies:
@@ -27306,7 +27349,7 @@ snapshots:
klona: 2.0.6
postcss: 8.4.35
semver: 7.6.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
postcss-merge-longhand@5.1.7(postcss@8.4.35):
dependencies:
@@ -27459,6 +27502,8 @@ snapshots:
picocolors: 1.0.0
source-map-js: 1.0.2
preact@10.24.3: {}
prebuild-install@7.1.1:
dependencies:
detect-libc: 2.0.2
@@ -27768,7 +27813,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
rc@1.2.8:
dependencies:
@@ -27803,7 +27848,7 @@ snapshots:
shell-quote: 1.7.2
strip-ansi: 6.0.0
text-table: 0.2.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
optionalDependencies:
typescript: 5.2.2
transitivePeerDependencies:
@@ -27853,26 +27898,24 @@ snapshots:
optionalDependencies:
react-dom: 16.14.0(react@16.14.0)
react-instantsearch-core@6.40.4(algoliasearch@4.22.1)(react@16.14.0):
react-instantsearch-core@7.13.6(algoliasearch@4.22.1)(react@16.14.0):
dependencies:
'@babel/runtime': 7.23.9
algoliasearch: 4.22.1
algoliasearch-helper: 3.14.0(algoliasearch@4.22.1)
prop-types: 15.8.1
algoliasearch-helper: 3.22.5(algoliasearch@4.22.1)
instantsearch.js: 4.75.3(algoliasearch@4.22.1)
react: 16.14.0
react-fast-compare: 3.2.2
use-sync-external-store: 1.2.2(react@16.14.0)
react-instantsearch-dom@6.40.4(algoliasearch@4.22.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0):
react-instantsearch@7.13.6(algoliasearch@4.22.1)(react-dom@16.14.0(react@16.14.0))(react@16.14.0):
dependencies:
'@babel/runtime': 7.23.9
algoliasearch: 4.22.1
algoliasearch-helper: 3.14.0(algoliasearch@4.22.1)
classnames: 2.3.2
prop-types: 15.8.1
instantsearch-ui-components: 0.9.0
instantsearch.js: 4.75.3(algoliasearch@4.22.1)
react: 16.14.0
react-dom: 16.14.0(react@16.14.0)
react-fast-compare: 3.2.2
react-instantsearch-core: 6.40.4(algoliasearch@4.22.1)(react@16.14.0)
react-instantsearch-core: 7.13.6(algoliasearch@4.22.1)(react@16.14.0)
react-is@16.13.1: {}
@@ -28530,6 +28573,8 @@ snapshots:
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
search-insights@2.17.2: {}
section-matter@1.0.0:
dependencies:
extend-shallow: 2.0.1
@@ -29309,7 +29354,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
style-to-object@0.3.0:
dependencies:
@@ -29450,7 +29495,7 @@ snapshots:
term-size@2.2.1: {}
terser-webpack-plugin@5.3.10(webpack@5.90.3):
terser-webpack-plugin@5.3.10(webpack@5.90.3(webpack-cli@4.10.0)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
@@ -29459,6 +29504,15 @@ snapshots:
terser: 5.28.1
webpack: 5.90.3(webpack-cli@4.10.0)
terser-webpack-plugin@5.3.10(webpack@5.90.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.1
terser: 5.28.1
webpack: 5.90.3
terser-webpack-plugin@5.3.9(webpack@5.90.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.22
@@ -29466,7 +29520,7 @@ snapshots:
schema-utils: 3.3.0
serialize-javascript: 6.0.1
terser: 5.20.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
terser@5.20.0:
dependencies:
@@ -30116,7 +30170,7 @@ snapshots:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
optionalDependencies:
file-loader: 6.2.0(webpack@5.90.3)
@@ -30141,6 +30195,10 @@ snapshots:
urlpattern-polyfill@10.0.0: {}
use-sync-external-store@1.2.2(react@16.14.0):
dependencies:
react: 16.14.0
use@3.1.1: {}
util-deprecate@1.0.2: {}
@@ -30327,9 +30385,9 @@ snapshots:
webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3):
dependencies:
'@discoveryjs/json-ext': 0.5.7
'@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.90.3)
'@webpack-cli/info': 1.5.0(webpack-cli@4.10.0)
'@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0)
'@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))(webpack@5.90.3(webpack-cli@4.10.0))
'@webpack-cli/info': 1.5.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))
'@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3))
colorette: 2.0.20
commander: 7.2.0
cross-spawn: 7.0.3
@@ -30350,7 +30408,7 @@ snapshots:
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 3.3.0
webpack: 5.90.3(webpack-cli@4.10.0)
webpack: 5.90.3
webpack-merge@5.9.0:
dependencies:
@@ -30372,6 +30430,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
webpack@5.90.3:
dependencies:
'@types/eslint-scope': 3.7.5
'@types/estree': 1.0.5
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/wasm-edit': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
acorn: 8.11.3
acorn-import-assertions: 1.9.0(acorn@8.11.3)
browserslist: 4.23.0
chrome-trace-event: 1.0.3
enhanced-resolve: 5.15.0
es-module-lexer: 1.3.1
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
loader-runner: 4.3.0
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(webpack@5.90.3)
watchpack: 2.4.0
webpack-sources: 3.2.3
transitivePeerDependencies:
- '@swc/core'
- esbuild
- uglify-js
webpack@5.90.3(webpack-cli@4.10.0):
dependencies:
'@types/eslint-scope': 3.7.5
@@ -30395,7 +30484,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(webpack@5.90.3)
terser-webpack-plugin: 5.3.10(webpack@5.90.3(webpack-cli@4.10.0))
watchpack: 2.4.0
webpack-sources: 3.2.3
optionalDependencies: