diff --git a/.gitignore b/.gitignore index c87c9b392c..0ad2e445b8 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# Sitemaps +sitemap*.xml diff --git a/next-sitemap.config.js b/next-sitemap.config.js new file mode 100644 index 0000000000..8cd3c222d2 --- /dev/null +++ b/next-sitemap.config.js @@ -0,0 +1,6 @@ +/** @type {import('next-sitemap').IConfig} */ + +module.exports = { + siteUrl: 'https://geth.ethereum.org', + generateRobotsTxt: true +}; diff --git a/package.json b/package.json index 124a93d3d1..50a327440b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "dev": "next dev", "build": "npm run lint && next build && npm run format:fix", + "postbuild": "next-sitemap", "start": "next start", "lint": "next lint", "format:fix": "prettier . --write --config .prettierrc --ignore-path .prettierignore --loglevel warn" @@ -14,8 +15,10 @@ "dependencies": { "@chakra-ui/icons": "^2.0.11", "@chakra-ui/react": "^2.3.2", + "@docsearch/react": "3", "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", + "algoliasearch": "^4.14.2", "chakra-ui-markdown-renderer": "^4.1.0", "fast-xml-parser": "^4.0.12", "focus-visible": "^5.2.0", @@ -23,6 +26,7 @@ "gray-matter": "^4.0.3", "js-yaml": "^4.1.0", "next": "^13.0.2", + "next-sitemap": "^3.1.32", "react": "18.2.0", "react-dom": "18.2.0", "react-markdown": "^8.0.3", diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000000..2883f50af7 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,9 @@ +# * +User-agent: * +Allow: / + +# Host +Host: https://geth.ethereum.org + +# Sitemaps +Sitemap: https://geth.ethereum.org/sitemap.xml diff --git a/src/components/UI/Header.tsx b/src/components/UI/Header.tsx index 541d7dcc22..f38b0d6759 100644 --- a/src/components/UI/Header.tsx +++ b/src/components/UI/Header.tsx @@ -2,8 +2,9 @@ import { FC } from 'react'; import { Box, Flex, Link, Stack, Text, useColorMode } from '@chakra-ui/react'; import NextLink from 'next/link'; +import { Search } from '../UI'; import { MoonIcon, SunIcon } from '../UI/icons'; -import { Search } from './search'; + import { HeaderButtons } from './'; import { MobileMenu } from '../layouts'; @@ -61,7 +62,7 @@ export const Header: FC = () => { {/* SEARCH */} - + diff --git a/src/components/UI/Search.tsx b/src/components/UI/Search.tsx new file mode 100644 index 0000000000..82fec62a36 --- /dev/null +++ b/src/components/UI/Search.tsx @@ -0,0 +1,22 @@ +import { DocSearch } from '@docsearch/react'; + +import '@docsearch/css'; + +export const Search: React.FC = () => { + const appId = process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || ''; + const apiKey = process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY || ''; + const indexName = process.env.NEXT_PUBLIC_ALGOLIA_BASE_SEARCH_INDEX_NAME || ''; + return ( + + items.map(item => ({ + ...item, + url: item.url.replace(/^https?:\/\/[^\/]+(?=\/)/, '') + })) + } + /> + ); +}; diff --git a/src/components/UI/index.ts b/src/components/UI/index.ts index 38fb98e813..7748592eee 100644 --- a/src/components/UI/index.ts +++ b/src/components/UI/index.ts @@ -3,3 +3,4 @@ export * from './DataTable'; export * from './Header'; export * from './HeaderButtons'; export * from './PageMetadata'; +export * from './Search'; diff --git a/src/components/UI/search/Search.tsx b/src/components/UI/search/Search.tsx deleted file mode 100644 index c6a7b3d9f3..0000000000 --- a/src/components/UI/search/Search.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { FC, useState } from 'react'; -import { Button, Input, InputGroup, Stack } from '@chakra-ui/react'; - -import { BORDER_WIDTH } from '../../../constants'; -import { LensIcon } from '../icons'; - -export const Search: FC = () => { - const [query, setQuery] = useState(''); - - // Handlers - const handleChange = (e: React.ChangeEvent): void => { - setQuery(e.target.value); - }; - - return ( - -
- - - - - -
-
- ); -}; diff --git a/src/components/UI/search/index.ts b/src/components/UI/search/index.ts deleted file mode 100644 index addd53308b..0000000000 --- a/src/components/UI/search/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './Search'; diff --git a/src/components/layouts/MobileMenu.tsx b/src/components/layouts/MobileMenu.tsx index 8805c3350c..eb1e22778c 100644 --- a/src/components/layouts/MobileMenu.tsx +++ b/src/components/layouts/MobileMenu.tsx @@ -1,9 +1,16 @@ -import { Box, Flex, Modal, ModalContent, ModalOverlay, useDisclosure } from '@chakra-ui/react'; +import { + Box, + Flex, + Modal, + ModalContent, + ModalOverlay, + Stack, + useDisclosure +} from '@chakra-ui/react'; import { CloseIcon } from '@chakra-ui/icons'; +import { HeaderButtons, Search } from '../UI'; import { HamburgerIcon } from '../UI/icons'; -import { Search } from '../UI/search'; -import { HeaderButtons } from '../UI'; import { BORDER_WIDTH } from '../../constants'; @@ -42,6 +49,7 @@ export const MobileMenu: React.FC = () => { border={BORDER_WIDTH} overflow='hidden' direction='column' + display={{ md: 'none' }} > {/* CLOSE ICON */} @@ -63,7 +71,9 @@ export const MobileMenu: React.FC = () => { {/* SEARCH */} - + + + diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 3647775531..d83e55da59 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -6,6 +6,9 @@ import { Layout } from '../components/layouts'; import 'focus-visible/dist/focus-visible'; import theme from '../theme'; +// Algolia search css styling +import '../theme/search.css'; + export default function App({ Component, pageProps }: AppProps) { return ( diff --git a/src/theme/search.css b/src/theme/search.css new file mode 100644 index 0000000000..aed6fbb507 --- /dev/null +++ b/src/theme/search.css @@ -0,0 +1,182 @@ +/* Search field on desktop nav bar */ +.DocSearch-Button { + border-radius: 0; + height: 100%; + background: none; + margin: 0; + padding: 1rem; + width: 200px; + gap: 1rem; + --docsearch-searchbox-shadow: transparent; + --docsearch-searchbox-focus-background: transparent; +} + +.DocSearch-Button:hover { + background: var(--chakra-colors-primary); +} + +.DocSearch-Button:hover svg path, +.DocSearch-Button:hover kbd, +.DocSearch-Button:hover span { + color: var(--chakra-colors-bg); + border-color: var(--chakra-colors-bg); +} + +.DocSearch-Button-Container { + flex: 1; + flex-direction: row-reverse; + justify-content: space-between; +} + +.DocSearch-Button-Keys kbd { + background: none; + border: 1px solid var(--chakra-colors-primary); + color: var(--chakra-colors-primary); + box-shadow: none; + padding: 0.125rem; +} + +.DocSearch-Button-Placeholder { + text-align: start; + text-transform: lowercase; + font-style: italic; + color: var(--chakra-colors-primary); + font-weight: 400; + width: 100%; + flex: 1; +} + +.DocSearch-Search-Icon * { + color: var(--chakra-colors-primary); +} + +/* Algolia search modal styling */ +.DocSearch-Container { + z-index: 1400; +} + +.DocSearch-Modal { + border-radius: 0; + background: var(--chakra-colors-bg); +} + +.DocSearch-Logo { + text-transform: uppercase; +} + +.DocSearch-Commands kbd { + background: var(--chakra-colors-button-bg); + border: 1px solid var(--chakra-colors-primary); + border-radius: 0; + color: var(--chakra-colors-primary); + box-shadow: none; +} + +.DocSearch-Footer { + background: var(--chakra-colors-bg); +} + +svg[aria-label='Algolia'] * { + fill: var(--chakra-colors-body); +} + +.DocSearch-Form { + box-shadow: inset 0 0 0 2px var(--chakra-colors-primary); + background: var(--chakra-colors-secondary); + border-radius: 0; +} + +.DocSearch-Hit[aria-selected='true'] a { + background: var(--chakra-colors-secondary); + color: var(--chakra-colors-button-bg); +} + +.DocSearch-Hit[aria-selected='false'] a { + background: var(--chakra-colors-button-bg); +} + +.DocSearch-Hit[aria-selected='false'] > a > div > div.DocSearch-Hit-icon > svg > path { + color: var(--chakra-colors-body); +} + +.DocSearch-Hit-source, +.DocSearch-Label { + color: var(--chakra-colors-body); + font-family: var(--chakra-fonts-heading); + letter-spacing: 0.02em; + font-weight: 400; +} + +.DocSearch-Hit-source { + background: var(--chakra-colors-bg); + padding-block: var(--chakra-space-2); +} + +.DocSearch-Hit { + padding-bottom: var(--chakra-space-2); +} + +.DocSearch-Hit a { + border-radius: 0; +} + +.DocSearch-Hit[aria-selected='true'] > a > div > div.DocSearch-Hit-content-wrapper svg, +.DocSearch-Hit[aria-selected='true'] > a > div > div.DocSearch-Hit-content-wrapper span, +.DocSearch-Hit-title mark, +.DocSearch-Hit-path mark, +.DocSearch-Prefill { + color: var(--chakra-colors-primary); +} + +.DocSearch-Input, +.DocSearch-Input::placeholder, +.DocSearch-Form > label > svg > path, +.DocSearch-Reset { + color: var(--chakra-colors-bg); +} + +.DocSearch-Input::placeholder { + font-style: italic; + font-size: var(--chakra-fontSizes-md); +} + +.DocSearch-Container--Stalled .DocSearch-MagnifierLabel, +.DocSearch-Container--Stalled .DocSearch-LoadingIndicator { + color: var(--chakra-colors-bg); +} + +@media (max-width: 768px) { + /* Search field in mobile menu */ + .DocSearch-Button { + padding: 2rem 1rem; + width: 100%; + position: relative; + } + + .DocSearch-Button::before { + position: absolute; + content: 'search'; + font-size: var(--chakra-fontSizes-md); + color: var(--chakra-colors-bg); + inset: 0; + text-align: start; + padding: 2rem 1rem; + } + + .DocSearch-Search-Icon * { + color: var(--chakra-colors-bg); + } + + /* Mobile modal styling */ + .DocSearch-Container, + .DocSearch-Modal { + position: fixed; + inset: 1rem; + max-width: calc(100vw - 2rem); + max-height: calc(100vh - 2rem); + } + + .DocSearch-Cancel { + color: var(--chakra-colors-primary); + } +} diff --git a/src/utils/compareReleasesFn.ts b/src/utils/compareReleasesFn.ts index fa2f2b02ef..d0c2ee8dff 100644 --- a/src/utils/compareReleasesFn.ts +++ b/src/utils/compareReleasesFn.ts @@ -1,13 +1,18 @@ import { ReleaseData } from '../types'; export const compareReleasesFn = (a: ReleaseData, b: ReleaseData) => { - if (new Date(a.published) > new Date(b.published)) { - return -1; + const aPublished = new Date(a.published); + const bPublished = new Date(b.published); + const sameDate = aPublished.toDateString() === bPublished.toDateString(); + const sameCommit = a.commit.label === b.commit.label; + + if (sameDate && !sameCommit) { + return aPublished > bPublished ? -1 : 1; } - if (new Date(a.published) < new Date(b.published)) { - return 1; + if (sameDate) { + return a.release.label.length - b.release.label.length; } - return 0; + return aPublished > bPublished ? -1 : 1; }; diff --git a/src/utils/getReleaseArch.ts b/src/utils/getReleaseArch.ts index a2633bed0a..6e947cd7b9 100644 --- a/src/utils/getReleaseArch.ts +++ b/src/utils/getReleaseArch.ts @@ -20,7 +20,7 @@ export const getReleaseArch = (filename: string) => { return 'MIPS32(le)'; case 'mips64': return 'MIPS64'; - case 'MIPS64(le)': + case 'mips64le': return 'MIPS64(le)'; default: return 'all'; diff --git a/yarn.lock b/yarn.lock index 070259b380..289aac8a34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,129 @@ # yarn lockfile v1 +"@algolia/autocomplete-core@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz#8abbed88082f611997538760dffcb43b33b1fd1d" + integrity sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" + +"@algolia/autocomplete-preset-algolia@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz#9cd4f64b3d64399657ee2dc2b7e0a939e0713a26" + integrity sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw== + dependencies: + "@algolia/autocomplete-shared" "1.7.2" + +"@algolia/autocomplete-shared@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz#daa23280e78d3b42ae9564d12470ae034db51a89" + integrity sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug== + +"@algolia/cache-browser-local-storage@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz#d5b1b90130ca87c6321de876e167df9ec6524936" + integrity sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA== + dependencies: + "@algolia/cache-common" "4.14.2" + +"@algolia/cache-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.14.2.tgz#b946b6103c922f0c06006fb6929163ed2c67d598" + integrity sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg== + +"@algolia/cache-in-memory@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz#88e4a21474f9ac05331c2fa3ceb929684a395a24" + integrity sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ== + dependencies: + "@algolia/cache-common" "4.14.2" + +"@algolia/client-account@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.14.2.tgz#b76ac1ba9ea71e8c3f77a1805b48350dc0728a16" + integrity sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-analytics@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.14.2.tgz#ca04dcaf9a78ee5c92c5cb5e9c74cf031eb2f1fb" + integrity sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.14.2.tgz#e1324e167ffa8af60f3e8bcd122110fd0bfd1300" + integrity sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q== + dependencies: + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-personalization@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.14.2.tgz#656bbb6157a3dd1a4be7de65e457fda136c404ec" + integrity sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/client-search@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.14.2.tgz#357bdb7e640163f0e33bad231dfcc21f67dc2e92" + integrity sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw== + dependencies: + "@algolia/client-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/transporter" "4.14.2" + +"@algolia/logger-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.14.2.tgz#b74b3a92431f92665519d95942c246793ec390ee" + integrity sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA== + +"@algolia/logger-console@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.14.2.tgz#ec49cb47408f5811d4792598683923a800abce7b" + integrity sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g== + dependencies: + "@algolia/logger-common" "4.14.2" + +"@algolia/requester-browser-xhr@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz#a2cd4d9d8d90d53109cc7f3682dc6ebf20f798f2" + integrity sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw== + dependencies: + "@algolia/requester-common" "4.14.2" + +"@algolia/requester-common@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.14.2.tgz#bc4e9e5ee16c953c0ecacbfb334a33c30c28b1a1" + integrity sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg== + +"@algolia/requester-node-http@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz#7c1223a1785decaab1def64c83dade6bea45e115" + integrity sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg== + dependencies: + "@algolia/requester-common" "4.14.2" + +"@algolia/transporter@4.14.2": + version "4.14.2" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.14.2.tgz#77c069047fb1a4359ee6a51f51829508e44a1e3d" + integrity sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ== + dependencies: + "@algolia/cache-common" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@babel/code-frame@^7.0.0": version "7.18.6" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" @@ -806,11 +929,31 @@ resolved "https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-2.0.9.tgz#b43a3dd0bc1108954ad0eeb50d0261887ab5e31c" integrity sha512-PkNxrRGp9H3bdqEaoo8XGt/AL9UuGRTom0/9XJa+G/Dj8Cy1sDuamOWk3pN/ZQs46RokfK9Uh5LqPY5dwSDweg== +"@corex/deepmerge@^4.0.29": + version "4.0.29" + resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.29.tgz#af9debf07d7f6b0d2a9d04a266abf2c1418ed2f6" + integrity sha512-q/yVUnqckA8Do+EvAfpy7RLdumnBy9ZsducMUtZTvpdbJC7azEf1hGtnYYxm0QfphYxjwggv6XtH64prvS1W+A== + "@ctrl/tinycolor@^3.4.0": version "3.4.1" resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz" integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw== +"@docsearch/css@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.3.0.tgz#d698e48302d12240d7c2f7452ccb2d2239a8cd80" + integrity sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg== + +"@docsearch/react@3": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.3.0.tgz#b8ac8e7f49b9bf2f96d34c24bc1cfd097ec0eead" + integrity sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A== + dependencies: + "@algolia/autocomplete-core" "1.7.2" + "@algolia/autocomplete-preset-algolia" "1.7.2" + "@docsearch/css" "3.3.0" + algoliasearch "^4.0.0" + "@emotion/babel-plugin@^11.10.0": version "11.10.5" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz#65fa6e1790ddc9e23cc22658a4c5dea423c55c3c" @@ -1318,6 +1461,26 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +algoliasearch@^4.0.0, algoliasearch@^4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.14.2.tgz#63f142583bfc3a9bd3cd4a1b098bf6fe58e56f6c" + integrity sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg== + dependencies: + "@algolia/cache-browser-local-storage" "4.14.2" + "@algolia/cache-common" "4.14.2" + "@algolia/cache-in-memory" "4.14.2" + "@algolia/client-account" "4.14.2" + "@algolia/client-analytics" "4.14.2" + "@algolia/client-common" "4.14.2" + "@algolia/client-personalization" "4.14.2" + "@algolia/client-search" "4.14.2" + "@algolia/logger-common" "4.14.2" + "@algolia/logger-console" "4.14.2" + "@algolia/requester-browser-xhr" "4.14.2" + "@algolia/requester-common" "4.14.2" + "@algolia/requester-node-http" "4.14.2" + "@algolia/transporter" "4.14.2" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -3215,6 +3378,14 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +next-sitemap@^3.1.32: + version "3.1.32" + resolved "https://registry.yarnpkg.com/next-sitemap/-/next-sitemap-3.1.32.tgz#e4a7227cab23b5e5c68bc54d335b86d3ff1e05f8" + integrity sha512-jkIKpwLXpWWTPfmDO46+6nu4+qpar4CjvUwCR9rYZHWtzE/wFfaCVFKpGtFMl6MFjpu8GjiE6kWFEa7uF3bzzg== + dependencies: + "@corex/deepmerge" "^4.0.29" + minimist "^1.2.6" + next@^13.0.2: version "13.0.2" resolved "https://registry.npmjs.org/next/-/next-13.0.2.tgz"