refactor: fetch versions on the client

This commit is contained in:
iCrawl
2023-12-20 23:21:49 +01:00
parent d869d9b3fe
commit 7b5c31b2bc
7 changed files with 105 additions and 64 deletions

View File

@@ -53,7 +53,7 @@
"ariakit": "2.0.0-next.44", "ariakit": "2.0.0-next.44",
"cmdk": "^0.2.0", "cmdk": "^0.2.0",
"contentlayer": "^0.3.4", "contentlayer": "^0.3.4",
"next": "14.0.3-canary.5", "next": "14.0.5-canary.21",
"next-contentlayer": "^0.3.4", "next-contentlayer": "^0.3.4",
"next-themes": "^0.2.1", "next-themes": "^0.2.1",
"react": "^18.2.0", "react": "^18.2.0",
@@ -65,7 +65,7 @@
"sharp": "^0.32.6" "sharp": "^0.32.6"
}, },
"devDependencies": { "devDependencies": {
"@next/bundle-analyzer": "14.0.3-canary.5", "@next/bundle-analyzer": "14.0.5-canary.21",
"@testing-library/react": "^14.1.2", "@testing-library/react": "^14.1.2",
"@testing-library/user-event": "^14.5.1", "@testing-library/user-event": "^14.5.1",
"@types/html-escaper": "^3.0.2", "@types/html-escaper": "^3.0.2",

View File

@@ -8,6 +8,7 @@ export default withBundleAnalyzer({
reactStrictMode: true, reactStrictMode: true,
experimental: { experimental: {
typedRoutes: true, typedRoutes: true,
ppr: true,
serverComponentsExternalPackages: ['@rushstack/node-core-library', '@discordjs/api-extractor-model', 'jju'], serverComponentsExternalPackages: ['@rushstack/node-core-library', '@discordjs/api-extractor-model', 'jju'],
}, },
images: { images: {

View File

@@ -62,7 +62,7 @@
"class-variance-authority": "^0.7.0", "class-variance-authority": "^0.7.0",
"cmdk": "^0.2.0", "cmdk": "^0.2.0",
"meilisearch": "^0.35.1", "meilisearch": "^0.35.1",
"next": "14.0.3-canary.5", "next": "14.0.5-canary.21",
"next-mdx-remote": "^4.4.1", "next-mdx-remote": "^4.4.1",
"next-themes": "^0.2.1", "next-themes": "^0.2.1",
"react": "^18.2.0", "react": "^18.2.0",
@@ -71,10 +71,11 @@
"react-use": "^17.4.2", "react-use": "^17.4.2",
"rehype-slug": "^5.1.0", "rehype-slug": "^5.1.0",
"remark-gfm": "^3.0.1", "remark-gfm": "^3.0.1",
"sharp": "^0.32.6" "sharp": "^0.32.6",
"swr": "^2.2.4"
}, },
"devDependencies": { "devDependencies": {
"@next/bundle-analyzer": "14.0.3-canary.5", "@next/bundle-analyzer": "14.0.5-canary.21",
"@testing-library/react": "^14.1.2", "@testing-library/react": "^14.1.2",
"@testing-library/user-event": "^14.5.1", "@testing-library/user-event": "^14.5.1",
"@types/node": "18.18.8", "@types/node": "18.18.8",

View File

@@ -0,0 +1,7 @@
import type { NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
import { fetchVersions } from '~/app/docAPI';
export async function GET(_: NextRequest, params: { package: string }) {
return NextResponse.json(await fetchVersions(params.package));
}

View File

@@ -12,8 +12,6 @@ import { resolveItemURI } from '~/components/documentation/util';
import { N_RECENT_VERSIONS, PACKAGES } from '~/util/constants'; import { N_RECENT_VERSIONS, PACKAGES } from '~/util/constants';
import { Providers } from './providers'; import { Providers } from './providers';
export const revalidate = 0;
const Header = dynamic(async () => import('~/components/Header')); const Header = dynamic(async () => import('~/components/Header'));
const Footer = dynamic(async () => import('~/components/Footer')); const Footer = dynamic(async () => import('~/components/Footer'));

View File

@@ -6,14 +6,20 @@ import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu';
import Link from 'next/link'; import Link from 'next/link';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { useMemo } from 'react'; import { useMemo } from 'react';
import useSWR from 'swr';
const isDev = process.env.NEXT_PUBLIC_LOCAL_DEV === 'true' ?? process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview'; const isDev = process.env.NEXT_PUBLIC_LOCAL_DEV === 'true' ?? process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview';
// eslint-disable-next-line promise/prefer-await-to-then
const fetcher = async (url: string) => fetch(url).then(async (res) => res.json());
export default function VersionSelect({ versions }: { readonly versions: string[] }) { export default function VersionSelect({ versions }: { readonly versions: string[] }) {
const pathname = usePathname(); const pathname = usePathname();
const packageName = pathname?.split('/').slice(3, 4)[0]; const packageName = pathname?.split('/').slice(3, 4)[0];
const branchName = pathname?.split('/').slice(4, 5)[0]; const branchName = pathname?.split('/').slice(4, 5)[0];
const { data } = useSWR<string[]>('/api/user', { fetcher, fallbackData: versions });
const versionMenu = useMenuState({ const versionMenu = useMenuState({
gutter: 8, gutter: 8,
sameWidth: true, sameWidth: true,
@@ -22,7 +28,7 @@ export default function VersionSelect({ versions }: { readonly versions: string[
const versionMenuItems = useMemo( const versionMenuItems = useMemo(
() => () =>
versions?.map((item, idx) => ( data?.map((item, idx) => (
<Link href={`/docs/packages/${packageName}/${isDev ? 'main' : item}`} key={`${item}-${idx}`}> <Link href={`/docs/packages/${packageName}/${isDev ? 'main' : item}`} key={`${item}-${idx}`}>
<MenuItem <MenuItem
className="my-0.5 rounded bg-white p-3 text-sm outline-none active:bg-light-800 dark:bg-dark-600 hover:bg-light-700 focus:ring focus:ring-width-2 focus:ring-blurple dark:active:bg-dark-400 dark:hover:bg-dark-500" className="my-0.5 rounded bg-white p-3 text-sm outline-none active:bg-light-800 dark:bg-dark-600 hover:bg-light-700 focus:ring focus:ring-width-2 focus:ring-blurple dark:active:bg-dark-400 dark:hover:bg-dark-500"
@@ -33,7 +39,7 @@ export default function VersionSelect({ versions }: { readonly versions: string[
</MenuItem> </MenuItem>
</Link> </Link>
)) ?? [], )) ?? [],
[versions, packageName, versionMenu], [data, packageName, versionMenu],
); );
return ( return (

138
pnpm-lock.yaml generated
View File

@@ -115,14 +115,14 @@ importers:
specifier: ^0.3.4 specifier: ^0.3.4
version: 0.3.4 version: 0.3.4
next: next:
specifier: 14.0.3-canary.5 specifier: 14.0.5-canary.21
version: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) version: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0)
next-contentlayer: next-contentlayer:
specifier: ^0.3.4 specifier: ^0.3.4
version: 0.3.4(contentlayer@0.3.4)(next@14.0.3-canary.5)(react-dom@18.2.0)(react@18.2.0) version: 0.3.4(contentlayer@0.3.4)(next@14.0.5-canary.21)(react-dom@18.2.0)(react@18.2.0)
next-themes: next-themes:
specifier: ^0.2.1 specifier: ^0.2.1
version: 0.2.1(next@14.0.3-canary.5)(react-dom@18.2.0)(react@18.2.0) version: 0.2.1(next@14.0.5-canary.21)(react-dom@18.2.0)(react@18.2.0)
react: react:
specifier: ^18.2.0 specifier: ^18.2.0
version: 18.2.0 version: 18.2.0
@@ -146,8 +146,8 @@ importers:
version: 0.32.6 version: 0.32.6
devDependencies: devDependencies:
'@next/bundle-analyzer': '@next/bundle-analyzer':
specifier: 14.0.3-canary.5 specifier: 14.0.5-canary.21
version: 14.0.3-canary.5 version: 14.0.5-canary.21
'@testing-library/react': '@testing-library/react':
specifier: ^14.1.2 specifier: ^14.1.2
version: 14.1.2(react-dom@18.2.0)(react@18.2.0) version: 14.1.2(react-dom@18.2.0)(react@18.2.0)
@@ -278,14 +278,14 @@ importers:
specifier: ^0.35.1 specifier: ^0.35.1
version: 0.35.1 version: 0.35.1
next: next:
specifier: 14.0.3-canary.5 specifier: 14.0.5-canary.21
version: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) version: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0)
next-mdx-remote: next-mdx-remote:
specifier: ^4.4.1 specifier: ^4.4.1
version: 4.4.1(react-dom@18.2.0)(react@18.2.0) version: 4.4.1(react-dom@18.2.0)(react@18.2.0)
next-themes: next-themes:
specifier: ^0.2.1 specifier: ^0.2.1
version: 0.2.1(next@14.0.3-canary.5)(react-dom@18.2.0)(react@18.2.0) version: 0.2.1(next@14.0.5-canary.21)(react-dom@18.2.0)(react@18.2.0)
react: react:
specifier: ^18.2.0 specifier: ^18.2.0
version: 18.2.0 version: 18.2.0
@@ -307,10 +307,13 @@ importers:
sharp: sharp:
specifier: ^0.32.6 specifier: ^0.32.6
version: 0.32.6 version: 0.32.6
swr:
specifier: ^2.2.4
version: 2.2.4(react@18.2.0)
devDependencies: devDependencies:
'@next/bundle-analyzer': '@next/bundle-analyzer':
specifier: 14.0.3-canary.5 specifier: 14.0.5-canary.21
version: 14.0.3-canary.5 version: 14.0.5-canary.21
'@testing-library/react': '@testing-library/react':
specifier: ^14.1.2 specifier: ^14.1.2
version: 14.1.2(react-dom@18.2.0)(react@18.2.0) version: 14.1.2(react-dom@18.2.0)(react@18.2.0)
@@ -3898,7 +3901,7 @@ packages:
typescript-5.1: /typescript@5.1.6 typescript-5.1: /typescript@5.1.6
typescript-5.2: /typescript@5.2.2 typescript-5.2: /typescript@5.2.2
typescript-5.3: /typescript@5.3.3 typescript-5.3: /typescript@5.3.3
typescript-5.4: /typescript@5.4.0-dev.20231219 typescript-5.4: /typescript@5.4.0-dev.20231220
dev: true dev: true
/@definitelytyped/typescript-versions@0.0.184: /@definitelytyped/typescript-versions@0.0.184:
@@ -5167,8 +5170,8 @@ packages:
'@types/pg': 8.6.6 '@types/pg': 8.6.6
dev: false dev: false
/@next/bundle-analyzer@14.0.3-canary.5: /@next/bundle-analyzer@14.0.5-canary.21:
resolution: {integrity: sha512-PhGJFo0FDJxIlNyD8SZmVBrDmSESyS2R5snCH0sqCY4OGlJJbWsxQ1EXlL63nO6UtPqxuifcyHUQJNSm6eFWLg==} resolution: {integrity: sha512-vCGl9HCN5+VoDeU/7vM2m1Ibq1t3HmkzCCO29MpO5EqLf8z7daNKnCTXLF5Mkku3KzFLD8Q4GtX6/uYWoSb23g==}
dependencies: dependencies:
webpack-bundle-analyzer: 4.7.0 webpack-bundle-analyzer: 4.7.0
transitivePeerDependencies: transitivePeerDependencies:
@@ -5176,8 +5179,8 @@ packages:
- utf-8-validate - utf-8-validate
dev: true dev: true
/@next/env@14.0.3-canary.5: /@next/env@14.0.5-canary.21:
resolution: {integrity: sha512-6pkzGchQtJR0QD828IDtwNIaqbbRv1vid8vxaThOalyAPh2ZLcousztw2REx+nNsKhgMblwFvR3B2/K0g1kEqg==} resolution: {integrity: sha512-3T2q0/cmnyWeI4dApgPMWsgfzZEbF9UZ/G8SGf+6FWhFwLi+24tEpgtvGXL9bTrfVGu9gWTO6hANid85XvvyIg==}
dev: false dev: false
/@next/eslint-plugin-next@13.5.6: /@next/eslint-plugin-next@13.5.6:
@@ -5186,8 +5189,8 @@ packages:
glob: 7.1.7 glob: 7.1.7
dev: true dev: true
/@next/swc-darwin-arm64@14.0.3-canary.5: /@next/swc-darwin-arm64@14.0.5-canary.21:
resolution: {integrity: sha512-e27vB/NLe78YHhWnklJsXxx5CVxWG5GVSKcYuBhJvH402IaI+lCvI7g+FzlwzWPZwUjQLGQyEvtHUPn9DVdxVw==} resolution: {integrity: sha512-zJJr7FsCNc67+6xZdDDtUVzmbrs1BDIXee5WMyaTr20tOyFsTxqMEMYom6Ylk/CxKNt6YiPgczUfwsgyIw6bwg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
@@ -5195,8 +5198,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-darwin-x64@14.0.3-canary.5: /@next/swc-darwin-x64@14.0.5-canary.21:
resolution: {integrity: sha512-KmC8hRQY8g+a+wP2Wld0W7ahkTLaaBj2jaFxlB3uAy1JI4It2Xrii4YjGKPsRWGSVEhRNCSX7DVPCFJ2waJs3g==} resolution: {integrity: sha512-pyfDXIQOXxCQlYqC9H2nNF5QHYcEUms+O9Q0MBiUTnRj52kkFrbRclZ7EdJT0bQ29F6fhkZtkQQ9R56pU8EwfA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
@@ -5204,8 +5207,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-arm64-gnu@14.0.3-canary.5: /@next/swc-linux-arm64-gnu@14.0.5-canary.21:
resolution: {integrity: sha512-HkeWc19aDaMWz5wMxfUDMMJ+6losxPQT+uifp0jAbtGWomuSp0CwzhcJ+yyWmKK2F5u65cpR/NQw+khX3enYJA==} resolution: {integrity: sha512-8j3cJFLFMjIudlCJBoQsKo0C1w/OJlhsy8XcYdc/qcwMKDvpSaZtEvNjCvPcx8DHvvxvvgDf8cT+K53ZiAmq7g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@@ -5213,8 +5216,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-arm64-musl@14.0.3-canary.5: /@next/swc-linux-arm64-musl@14.0.5-canary.21:
resolution: {integrity: sha512-n0SrvIwvv+BrKPtE+z0i38jAoGmxt1glmRpgUyPCfgTCtlgBr9/NAfDITVlG250e5T6ruUy5qt/wt18DmnaZdg==} resolution: {integrity: sha512-lR5VIaMMo4BaBobIe2sH78NbQEmBLnIAf0nkMWSttd4Wj74vm0N751uj9mQ1Hza+xRpgBxi/X1piOdvSFGBFXQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@@ -5222,8 +5225,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-x64-gnu@14.0.3-canary.5: /@next/swc-linux-x64-gnu@14.0.5-canary.21:
resolution: {integrity: sha512-rZjR6YYLwX1ZNHc2MUySDCG3klINy6/CABZqIVdCz7eAU1tCD+4UOXrOINn09yz2goBd5ksAC0RMqs5UBF46Jw==} resolution: {integrity: sha512-ycT69XRydEgW8K28izrE34qO1YzxKsZiD1blsxcwm0UrG4au4uQiQt8MGjDToAhZ6wN/fXpBJ/M/GXI7y3tzeA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@@ -5231,8 +5234,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-x64-musl@14.0.3-canary.5: /@next/swc-linux-x64-musl@14.0.5-canary.21:
resolution: {integrity: sha512-93NXFrvWTDpzkwnkv0zn/wj8Q+z/XJ3cIwNlmQeJ8oWFLwdo5XdFbwxPPhhn8VvX6hJw+R77ejy1X+ONzY68JA==} resolution: {integrity: sha512-CeGM4pSXD2k3cE1Q2yep1kX/y0TxbUuH/7hxwjT5dPGWcY/bTtAm/Jw8D0XkdRDOex1po3PnSip8GdYcUuTzIA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@@ -5240,8 +5243,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-arm64-msvc@14.0.3-canary.5: /@next/swc-win32-arm64-msvc@14.0.5-canary.21:
resolution: {integrity: sha512-pHuNwmKGn+M2N3wbsPugTJU1KYtbEUxvU9RVDpEtTvHcM3yxaUgHyOxpsR077wRbPVdnuH0c9EMsqNNftuVGEw==} resolution: {integrity: sha512-ZwKl1a1MQzlKBjJwK3UP5PBMhLrrwQdM06kQTC8+n24YRkZVAl27j6OJOiIhkfTavK0QMihxpDhEGd/0jmg58Q==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
@@ -5249,8 +5252,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-ia32-msvc@14.0.3-canary.5: /@next/swc-win32-ia32-msvc@14.0.5-canary.21:
resolution: {integrity: sha512-DxGwCgxOzJbm04sl7drFvpeqW9NDeSpfNKvTwLS7lSZV9eo6SbRp/C1W5jX+d1Fc4WsFM1a4qQq+jeI/pdEIGA==} resolution: {integrity: sha512-6+kWH6G8vgmZ38L2duWPLI+j+ZDTm8BytCZ6E2DuWuHQR7mAes/+gSHn3JawPTJvpaviEW90z6c1DXqKPLyuzQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
@@ -5258,8 +5261,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-x64-msvc@14.0.3-canary.5: /@next/swc-win32-x64-msvc@14.0.5-canary.21:
resolution: {integrity: sha512-nfb9+i86FD8NJHn1a8iThSYCacDboV3AMbs52jJPh8BB+n/uUUX1+Wzl/OgaKsARg8sqKAzblzuEnUw+2aQNbw==} resolution: {integrity: sha512-ItoQhKyviWd6816jBx2oDZM5PSKN3kFRmvezhyOkRjfREP5+PEZosrfD50kKTetN1BXCVHh7BVu4EHzPPnDngg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -10672,10 +10675,10 @@ packages:
/caniuse-lite@1.0.30001561: /caniuse-lite@1.0.30001561:
resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==}
dev: true
/caniuse-lite@1.0.30001570: /caniuse-lite@1.0.30001570:
resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==}
dev: true
/caseless@0.12.0: /caseless@0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
@@ -12191,7 +12194,7 @@ packages:
dependencies: dependencies:
semver: 7.5.4 semver: 7.5.4
shelljs: 0.8.5 shelljs: 0.8.5
typescript: 5.4.0-dev.20231219 typescript: 5.4.0-dev.20231220
dev: true dev: true
/dts-critic@3.3.11(typescript@5.2.2): /dts-critic@3.3.11(typescript@5.2.2):
@@ -18128,7 +18131,7 @@ packages:
engines: {node: '>= 0.4.0'} engines: {node: '>= 0.4.0'}
dev: true dev: true
/next-contentlayer@0.3.4(contentlayer@0.3.4)(next@14.0.3-canary.5)(react-dom@18.2.0)(react@18.2.0): /next-contentlayer@0.3.4(contentlayer@0.3.4)(next@14.0.5-canary.21)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-UtUCwgAl159KwfhNaOwyiI7Lg6sdioyKMeh+E7jxx0CJ29JuXGxBEYmCI6+72NxFGIFZKx8lvttbbQhbnYWYSw==} resolution: {integrity: sha512-UtUCwgAl159KwfhNaOwyiI7Lg6sdioyKMeh+E7jxx0CJ29JuXGxBEYmCI6+72NxFGIFZKx8lvttbbQhbnYWYSw==}
peerDependencies: peerDependencies:
contentlayer: 0.3.4 contentlayer: 0.3.4
@@ -18148,7 +18151,7 @@ packages:
'@contentlayer/core': 0.3.4 '@contentlayer/core': 0.3.4
'@contentlayer/utils': 0.3.4 '@contentlayer/utils': 0.3.4
contentlayer: 0.3.4 contentlayer: 0.3.4
next: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) next: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
transitivePeerDependencies: transitivePeerDependencies:
@@ -18179,7 +18182,7 @@ packages:
- supports-color - supports-color
dev: false dev: false
/next-themes@0.2.1(next@14.0.3-canary.5)(react-dom@18.2.0)(react@18.2.0): /next-themes@0.2.1(next@14.0.5-canary.21)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==}
peerDependencies: peerDependencies:
next: '*' next: '*'
@@ -18193,13 +18196,13 @@ packages:
react-dom: react-dom:
optional: true optional: true
dependencies: dependencies:
next: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) next: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
/next@14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0): /next@14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-FWxsZEj5lUvGhXo1e8G9bAX3Gzug6o8WSDZb/jZzDJyDeTUxkGJdIIudinHQRVMpRDPPf+/5kvHI/Sm+pUVEJQ==} resolution: {integrity: sha512-pt0HTv96eZ+JBipFgyrA81RjYTNnYKzBUwkOr1EggECo43de9L+TLwNBMCrdUia4okCmVq0BCa2ZqxpEY86sJA==}
engines: {node: '>=18.17.0'} engines: {node: '>=18.17.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -18217,25 +18220,26 @@ packages:
sass: sass:
optional: true optional: true
dependencies: dependencies:
'@next/env': 14.0.3-canary.5 '@next/env': 14.0.5-canary.21
'@swc/helpers': 0.5.2 '@swc/helpers': 0.5.2
busboy: 1.6.0 busboy: 1.6.0
caniuse-lite: 1.0.30001561 caniuse-lite: 1.0.30001570
graceful-fs: 4.2.11
postcss: 8.4.31 postcss: 8.4.31
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
styled-jsx: 5.1.1(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0)
watchpack: 2.4.0 watchpack: 2.4.0
optionalDependencies: optionalDependencies:
'@next/swc-darwin-arm64': 14.0.3-canary.5 '@next/swc-darwin-arm64': 14.0.5-canary.21
'@next/swc-darwin-x64': 14.0.3-canary.5 '@next/swc-darwin-x64': 14.0.5-canary.21
'@next/swc-linux-arm64-gnu': 14.0.3-canary.5 '@next/swc-linux-arm64-gnu': 14.0.5-canary.21
'@next/swc-linux-arm64-musl': 14.0.3-canary.5 '@next/swc-linux-arm64-musl': 14.0.5-canary.21
'@next/swc-linux-x64-gnu': 14.0.3-canary.5 '@next/swc-linux-x64-gnu': 14.0.5-canary.21
'@next/swc-linux-x64-musl': 14.0.3-canary.5 '@next/swc-linux-x64-musl': 14.0.5-canary.21
'@next/swc-win32-arm64-msvc': 14.0.3-canary.5 '@next/swc-win32-arm64-msvc': 14.0.5-canary.21
'@next/swc-win32-ia32-msvc': 14.0.3-canary.5 '@next/swc-win32-ia32-msvc': 14.0.5-canary.21
'@next/swc-win32-x64-msvc': 14.0.3-canary.5 '@next/swc-win32-x64-msvc': 14.0.5-canary.21
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- babel-plugin-macros - babel-plugin-macros
@@ -21413,6 +21417,19 @@ packages:
upper-case: 1.1.3 upper-case: 1.1.3
dev: true dev: true
/swr@2.2.4(react@18.2.0):
resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==}
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0
peerDependenciesMeta:
react:
optional: true
dependencies:
client-only: 0.0.1
react: 18.2.0
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
/symbol-tree@3.2.4: /symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: false dev: false
@@ -22340,8 +22357,8 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/typescript@5.4.0-dev.20231219: /typescript@5.4.0-dev.20231220:
resolution: {integrity: sha512-pWOp0d2qj5T4llRnhb3BVkx2jN2yglMVTc96xs9dRY4I64EG/uFfyO3aoHm/1H0LAPmilJsJGDtXASxGM+GIVg==} resolution: {integrity: sha512-gO+86xJ5TnxXTrU2jXZewS9x95rKXCGpDuYUmdKC8rVfEchLrcH2LASQUXguQ2yinln8lrCttDZfO4d6gpuE4g==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
dev: true dev: true
@@ -22806,6 +22823,17 @@ packages:
react: 18.2.0 react: 18.2.0
tslib: 2.6.2 tslib: 2.6.2
/use-sync-external-store@1.2.0(react@18.2.0):
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
peerDependenciesMeta:
react:
optional: true
dependencies:
react: 18.2.0
dev: false
/utf-8-validate@6.0.3: /utf-8-validate@6.0.3:
resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==}
engines: {node: '>=6.14.2'} engines: {node: '>=6.14.2'}