From 7b5c31b2bc1115aabc0335e38a880af7768a4592 Mon Sep 17 00:00:00 2001 From: iCrawl Date: Wed, 20 Dec 2023 23:21:49 +0100 Subject: [PATCH] refactor: fetch versions on the client --- apps/guide/package.json | 4 +- apps/website/next.config.mjs | 1 + apps/website/package.json | 7 +- .../src/app/api/[package]/versions/route.ts | 7 + .../packages/[package]/[version]/layout.tsx | 2 - apps/website/src/components/VersionSelect.tsx | 10 +- pnpm-lock.yaml | 138 +++++++++++------- 7 files changed, 105 insertions(+), 64 deletions(-) create mode 100644 apps/website/src/app/api/[package]/versions/route.ts diff --git a/apps/guide/package.json b/apps/guide/package.json index 87f22e22a..e95b49d65 100644 --- a/apps/guide/package.json +++ b/apps/guide/package.json @@ -53,7 +53,7 @@ "ariakit": "2.0.0-next.44", "cmdk": "^0.2.0", "contentlayer": "^0.3.4", - "next": "14.0.3-canary.5", + "next": "14.0.5-canary.21", "next-contentlayer": "^0.3.4", "next-themes": "^0.2.1", "react": "^18.2.0", @@ -65,7 +65,7 @@ "sharp": "^0.32.6" }, "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/user-event": "^14.5.1", "@types/html-escaper": "^3.0.2", diff --git a/apps/website/next.config.mjs b/apps/website/next.config.mjs index a6fe69f21..11158d8d4 100644 --- a/apps/website/next.config.mjs +++ b/apps/website/next.config.mjs @@ -8,6 +8,7 @@ export default withBundleAnalyzer({ reactStrictMode: true, experimental: { typedRoutes: true, + ppr: true, serverComponentsExternalPackages: ['@rushstack/node-core-library', '@discordjs/api-extractor-model', 'jju'], }, images: { diff --git a/apps/website/package.json b/apps/website/package.json index 046490b76..08f1762e8 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -62,7 +62,7 @@ "class-variance-authority": "^0.7.0", "cmdk": "^0.2.0", "meilisearch": "^0.35.1", - "next": "14.0.3-canary.5", + "next": "14.0.5-canary.21", "next-mdx-remote": "^4.4.1", "next-themes": "^0.2.1", "react": "^18.2.0", @@ -71,10 +71,11 @@ "react-use": "^17.4.2", "rehype-slug": "^5.1.0", "remark-gfm": "^3.0.1", - "sharp": "^0.32.6" + "sharp": "^0.32.6", + "swr": "^2.2.4" }, "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/user-event": "^14.5.1", "@types/node": "18.18.8", diff --git a/apps/website/src/app/api/[package]/versions/route.ts b/apps/website/src/app/api/[package]/versions/route.ts new file mode 100644 index 000000000..eab719421 --- /dev/null +++ b/apps/website/src/app/api/[package]/versions/route.ts @@ -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)); +} diff --git a/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx b/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx index 8329bf323..c0278993e 100644 --- a/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx +++ b/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx @@ -12,8 +12,6 @@ import { resolveItemURI } from '~/components/documentation/util'; import { N_RECENT_VERSIONS, PACKAGES } from '~/util/constants'; import { Providers } from './providers'; -export const revalidate = 0; - const Header = dynamic(async () => import('~/components/Header')); const Footer = dynamic(async () => import('~/components/Footer')); diff --git a/apps/website/src/components/VersionSelect.tsx b/apps/website/src/components/VersionSelect.tsx index 23e365b50..a634d943d 100644 --- a/apps/website/src/components/VersionSelect.tsx +++ b/apps/website/src/components/VersionSelect.tsx @@ -6,14 +6,20 @@ import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { useMemo } from 'react'; +import useSWR from 'swr'; 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[] }) { const pathname = usePathname(); const packageName = pathname?.split('/').slice(3, 4)[0]; const branchName = pathname?.split('/').slice(4, 5)[0]; + const { data } = useSWR('/api/user', { fetcher, fallbackData: versions }); + const versionMenu = useMenuState({ gutter: 8, sameWidth: true, @@ -22,7 +28,7 @@ export default function VersionSelect({ versions }: { readonly versions: string[ const versionMenuItems = useMemo( () => - versions?.map((item, idx) => ( + data?.map((item, idx) => ( )) ?? [], - [versions, packageName, versionMenu], + [data, packageName, versionMenu], ); return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a6906a38..587c80734 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,14 +115,14 @@ importers: specifier: ^0.3.4 version: 0.3.4 next: - specifier: 14.0.3-canary.5 - version: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) + specifier: 14.0.5-canary.21 + version: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0) next-contentlayer: 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: 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: specifier: ^18.2.0 version: 18.2.0 @@ -146,8 +146,8 @@ importers: version: 0.32.6 devDependencies: '@next/bundle-analyzer': - specifier: 14.0.3-canary.5 - version: 14.0.3-canary.5 + specifier: 14.0.5-canary.21 + version: 14.0.5-canary.21 '@testing-library/react': specifier: ^14.1.2 version: 14.1.2(react-dom@18.2.0)(react@18.2.0) @@ -278,14 +278,14 @@ importers: specifier: ^0.35.1 version: 0.35.1 next: - specifier: 14.0.3-canary.5 - version: 14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0) + specifier: 14.0.5-canary.21 + version: 14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0) next-mdx-remote: specifier: ^4.4.1 version: 4.4.1(react-dom@18.2.0)(react@18.2.0) next-themes: 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: specifier: ^18.2.0 version: 18.2.0 @@ -307,10 +307,13 @@ importers: sharp: specifier: ^0.32.6 version: 0.32.6 + swr: + specifier: ^2.2.4 + version: 2.2.4(react@18.2.0) devDependencies: '@next/bundle-analyzer': - specifier: 14.0.3-canary.5 - version: 14.0.3-canary.5 + specifier: 14.0.5-canary.21 + version: 14.0.5-canary.21 '@testing-library/react': specifier: ^14.1.2 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.2: /typescript@5.2.2 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 /@definitelytyped/typescript-versions@0.0.184: @@ -5167,8 +5170,8 @@ packages: '@types/pg': 8.6.6 dev: false - /@next/bundle-analyzer@14.0.3-canary.5: - resolution: {integrity: sha512-PhGJFo0FDJxIlNyD8SZmVBrDmSESyS2R5snCH0sqCY4OGlJJbWsxQ1EXlL63nO6UtPqxuifcyHUQJNSm6eFWLg==} + /@next/bundle-analyzer@14.0.5-canary.21: + resolution: {integrity: sha512-vCGl9HCN5+VoDeU/7vM2m1Ibq1t3HmkzCCO29MpO5EqLf8z7daNKnCTXLF5Mkku3KzFLD8Q4GtX6/uYWoSb23g==} dependencies: webpack-bundle-analyzer: 4.7.0 transitivePeerDependencies: @@ -5176,8 +5179,8 @@ packages: - utf-8-validate dev: true - /@next/env@14.0.3-canary.5: - resolution: {integrity: sha512-6pkzGchQtJR0QD828IDtwNIaqbbRv1vid8vxaThOalyAPh2ZLcousztw2REx+nNsKhgMblwFvR3B2/K0g1kEqg==} + /@next/env@14.0.5-canary.21: + resolution: {integrity: sha512-3T2q0/cmnyWeI4dApgPMWsgfzZEbF9UZ/G8SGf+6FWhFwLi+24tEpgtvGXL9bTrfVGu9gWTO6hANid85XvvyIg==} dev: false /@next/eslint-plugin-next@13.5.6: @@ -5186,8 +5189,8 @@ packages: glob: 7.1.7 dev: true - /@next/swc-darwin-arm64@14.0.3-canary.5: - resolution: {integrity: sha512-e27vB/NLe78YHhWnklJsXxx5CVxWG5GVSKcYuBhJvH402IaI+lCvI7g+FzlwzWPZwUjQLGQyEvtHUPn9DVdxVw==} + /@next/swc-darwin-arm64@14.0.5-canary.21: + resolution: {integrity: sha512-zJJr7FsCNc67+6xZdDDtUVzmbrs1BDIXee5WMyaTr20tOyFsTxqMEMYom6Ylk/CxKNt6YiPgczUfwsgyIw6bwg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -5195,8 +5198,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.0.3-canary.5: - resolution: {integrity: sha512-KmC8hRQY8g+a+wP2Wld0W7ahkTLaaBj2jaFxlB3uAy1JI4It2Xrii4YjGKPsRWGSVEhRNCSX7DVPCFJ2waJs3g==} + /@next/swc-darwin-x64@14.0.5-canary.21: + resolution: {integrity: sha512-pyfDXIQOXxCQlYqC9H2nNF5QHYcEUms+O9Q0MBiUTnRj52kkFrbRclZ7EdJT0bQ29F6fhkZtkQQ9R56pU8EwfA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -5204,8 +5207,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.0.3-canary.5: - resolution: {integrity: sha512-HkeWc19aDaMWz5wMxfUDMMJ+6losxPQT+uifp0jAbtGWomuSp0CwzhcJ+yyWmKK2F5u65cpR/NQw+khX3enYJA==} + /@next/swc-linux-arm64-gnu@14.0.5-canary.21: + resolution: {integrity: sha512-8j3cJFLFMjIudlCJBoQsKo0C1w/OJlhsy8XcYdc/qcwMKDvpSaZtEvNjCvPcx8DHvvxvvgDf8cT+K53ZiAmq7g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5213,8 +5216,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.0.3-canary.5: - resolution: {integrity: sha512-n0SrvIwvv+BrKPtE+z0i38jAoGmxt1glmRpgUyPCfgTCtlgBr9/NAfDITVlG250e5T6ruUy5qt/wt18DmnaZdg==} + /@next/swc-linux-arm64-musl@14.0.5-canary.21: + resolution: {integrity: sha512-lR5VIaMMo4BaBobIe2sH78NbQEmBLnIAf0nkMWSttd4Wj74vm0N751uj9mQ1Hza+xRpgBxi/X1piOdvSFGBFXQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5222,8 +5225,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.0.3-canary.5: - resolution: {integrity: sha512-rZjR6YYLwX1ZNHc2MUySDCG3klINy6/CABZqIVdCz7eAU1tCD+4UOXrOINn09yz2goBd5ksAC0RMqs5UBF46Jw==} + /@next/swc-linux-x64-gnu@14.0.5-canary.21: + resolution: {integrity: sha512-ycT69XRydEgW8K28izrE34qO1YzxKsZiD1blsxcwm0UrG4au4uQiQt8MGjDToAhZ6wN/fXpBJ/M/GXI7y3tzeA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5231,8 +5234,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.0.3-canary.5: - resolution: {integrity: sha512-93NXFrvWTDpzkwnkv0zn/wj8Q+z/XJ3cIwNlmQeJ8oWFLwdo5XdFbwxPPhhn8VvX6hJw+R77ejy1X+ONzY68JA==} + /@next/swc-linux-x64-musl@14.0.5-canary.21: + resolution: {integrity: sha512-CeGM4pSXD2k3cE1Q2yep1kX/y0TxbUuH/7hxwjT5dPGWcY/bTtAm/Jw8D0XkdRDOex1po3PnSip8GdYcUuTzIA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5240,8 +5243,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.0.3-canary.5: - resolution: {integrity: sha512-pHuNwmKGn+M2N3wbsPugTJU1KYtbEUxvU9RVDpEtTvHcM3yxaUgHyOxpsR077wRbPVdnuH0c9EMsqNNftuVGEw==} + /@next/swc-win32-arm64-msvc@14.0.5-canary.21: + resolution: {integrity: sha512-ZwKl1a1MQzlKBjJwK3UP5PBMhLrrwQdM06kQTC8+n24YRkZVAl27j6OJOiIhkfTavK0QMihxpDhEGd/0jmg58Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -5249,8 +5252,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.0.3-canary.5: - resolution: {integrity: sha512-DxGwCgxOzJbm04sl7drFvpeqW9NDeSpfNKvTwLS7lSZV9eo6SbRp/C1W5jX+d1Fc4WsFM1a4qQq+jeI/pdEIGA==} + /@next/swc-win32-ia32-msvc@14.0.5-canary.21: + resolution: {integrity: sha512-6+kWH6G8vgmZ38L2duWPLI+j+ZDTm8BytCZ6E2DuWuHQR7mAes/+gSHn3JawPTJvpaviEW90z6c1DXqKPLyuzQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -5258,8 +5261,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.0.3-canary.5: - resolution: {integrity: sha512-nfb9+i86FD8NJHn1a8iThSYCacDboV3AMbs52jJPh8BB+n/uUUX1+Wzl/OgaKsARg8sqKAzblzuEnUw+2aQNbw==} + /@next/swc-win32-x64-msvc@14.0.5-canary.21: + resolution: {integrity: sha512-ItoQhKyviWd6816jBx2oDZM5PSKN3kFRmvezhyOkRjfREP5+PEZosrfD50kKTetN1BXCVHh7BVu4EHzPPnDngg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -10672,10 +10675,10 @@ packages: /caniuse-lite@1.0.30001561: resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + dev: true /caniuse-lite@1.0.30001570: resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} - dev: true /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -12191,7 +12194,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.4.0-dev.20231219 + typescript: 5.4.0-dev.20231220 dev: true /dts-critic@3.3.11(typescript@5.2.2): @@ -18128,7 +18131,7 @@ packages: engines: {node: '>= 0.4.0'} 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==} peerDependencies: contentlayer: 0.3.4 @@ -18148,7 +18151,7 @@ packages: '@contentlayer/core': 0.3.4 '@contentlayer/utils': 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-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -18179,7 +18182,7 @@ packages: - supports-color 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==} peerDependencies: next: '*' @@ -18193,13 +18196,13 @@ packages: react-dom: optional: true 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-dom: 18.2.0(react@18.2.0) dev: false - /next@14.0.3-canary.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FWxsZEj5lUvGhXo1e8G9bAX3Gzug6o8WSDZb/jZzDJyDeTUxkGJdIIudinHQRVMpRDPPf+/5kvHI/Sm+pUVEJQ==} + /next@14.0.5-canary.21(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pt0HTv96eZ+JBipFgyrA81RjYTNnYKzBUwkOr1EggECo43de9L+TLwNBMCrdUia4okCmVq0BCa2ZqxpEY86sJA==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -18217,25 +18220,26 @@ packages: sass: optional: true dependencies: - '@next/env': 14.0.3-canary.5 + '@next/env': 14.0.5-canary.21 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001561 + caniuse-lite: 1.0.30001570 + graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.3-canary.5 - '@next/swc-darwin-x64': 14.0.3-canary.5 - '@next/swc-linux-arm64-gnu': 14.0.3-canary.5 - '@next/swc-linux-arm64-musl': 14.0.3-canary.5 - '@next/swc-linux-x64-gnu': 14.0.3-canary.5 - '@next/swc-linux-x64-musl': 14.0.3-canary.5 - '@next/swc-win32-arm64-msvc': 14.0.3-canary.5 - '@next/swc-win32-ia32-msvc': 14.0.3-canary.5 - '@next/swc-win32-x64-msvc': 14.0.3-canary.5 + '@next/swc-darwin-arm64': 14.0.5-canary.21 + '@next/swc-darwin-x64': 14.0.5-canary.21 + '@next/swc-linux-arm64-gnu': 14.0.5-canary.21 + '@next/swc-linux-arm64-musl': 14.0.5-canary.21 + '@next/swc-linux-x64-gnu': 14.0.5-canary.21 + '@next/swc-linux-x64-musl': 14.0.5-canary.21 + '@next/swc-win32-arm64-msvc': 14.0.5-canary.21 + '@next/swc-win32-ia32-msvc': 14.0.5-canary.21 + '@next/swc-win32-x64-msvc': 14.0.5-canary.21 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -21413,6 +21417,19 @@ packages: upper-case: 1.1.3 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: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: false @@ -22340,8 +22357,8 @@ packages: hasBin: true dev: true - /typescript@5.4.0-dev.20231219: - resolution: {integrity: sha512-pWOp0d2qj5T4llRnhb3BVkx2jN2yglMVTc96xs9dRY4I64EG/uFfyO3aoHm/1H0LAPmilJsJGDtXASxGM+GIVg==} + /typescript@5.4.0-dev.20231220: + resolution: {integrity: sha512-gO+86xJ5TnxXTrU2jXZewS9x95rKXCGpDuYUmdKC8rVfEchLrcH2LASQUXguQ2yinln8lrCttDZfO4d6gpuE4g==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -22806,6 +22823,17 @@ packages: react: 18.2.0 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: resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} engines: {node: '>=6.14.2'}